B2C电子商城系统笔记.docx
- 文档编号:30170679
- 上传时间:2023-08-05
- 格式:DOCX
- 页数:17
- 大小:2.66MB
B2C电子商城系统笔记.docx
《B2C电子商城系统笔记.docx》由会员分享,可在线阅读,更多相关《B2C电子商城系统笔记.docx(17页珍藏版)》请在冰豆网上搜索。
B2C电子商城系统笔记
B2C
依赖关系层
表示层(AiGouWu)
数据访问层(DAL)
业务逻辑层(DLL)
数据库层fu
1.数据库连接对象性总结
Connection
数据源
应用程序
桥梁
2.数据库命令对象总结
3.封装更改数据库常用方法
publicintExcuteCommandReturnInt(stringConmmandText,CommandTypetype,SqlParameter[]pars){
SqlConnectionconn=newSqlConnection(ConnString);//连接关系connection
if(conn.State==ConnectionState.Closed)
{
conn.Open();
}
try
{
SqlCommandcmd=newSqlCommand(ConmmandText,conn);//表cmd的值传递给conn
cmd.CommandType=type;
if(pars!
=null&&pars.Length>0)
{
foreach(SqlParameterpinpars)
{
cmd.Parameters.Add(p);//判断返回行数
}
}
intcount=cmd.ExecuteNonQuery();//执行sql语句
returncount;
}
catch(Exceptionex)
{
return0;
throw;
}
finally
{
conn.Close();//关闭数据库
conn.Dispose();//销毁数据开关减少内存压力
1.}
使用command对象更改数据库的步骤
搞定
封装数据访问层
上节总结:
数据库连接的封装sql语句
本节目标
数据适配器对象
数据阅读器
封装查询命令方法
Sqldatareader常用方法
using(SqlConnectionconn=newSqlConnection(connString))
{
SqlCommandcmd=newSqlCommand("SELECT*FROMCustomers",conn);//查询Customers表
cmd.Connection.Open();//打开数据库连接
SqlDataReaderreader=cmd.ExecuteReader();
While(reader.Read())//循环读取数据
//将companyname的值添加到CustomerList中
CustomerList.Items.Add(reader["companyname"].ToString());
reader.Close();//关闭数据库连接
cmd.CommandText="GetInfo";//接收定义类型
3cmd.CommandType=CommandType.StoredProcedure;
4SqlParameterparam=cmd.Parameters.Add("@Fid",16);
5param=cmd.Parameters.Add("@Fname",SqlDbType.VarChar,8);
6param.Direction=ParameterDirection.Output;
7param=cmd.Parameters.Add("@Fphone",SqlDbType.VarChar,8);
8param.Direction=ParameterDirection.Output;
9conn.Open();
10cmd.ExecuteNonQuery();
11stringFname=cmd.Parameters["@Fname"].Value.ToString();
12stringFphone=cmd.Parameters["@Fphone"].Value.ToString();
13Console.WriteLine(Fname+""+Fphone);
14conn.Close();
15showSplit();
16}
17
18//**************************************
19//*演示读取多个无关记录集
20//**************************************
21publicvoidmultiResult()
22{
23SqlCommandcmd;
24cmd=conn.CreateCommand();
25stringsqla="selectFnamefromfriend";
26stringsqlb="selectFphonefromfriend";
27cmd.CommandText=sqla+";"+sqlb;
28conn.Open();
29SqlDataReaderreader=cmd.ExecuteReader();
30inti=1;
31do
32{
33Console.WriteLine("第"+i.ToString()+"个记录集内容如下:
\n");
34while(reader.Read())
35{
36Console.WriteLine(reader[0].ToString()+"\t");
37}
38i++;
39}while(reader.NextResult());//NextResult()移动到下一个记录集
40reader.Close();
41conn.Close();
42showSplit();
43}
44
45//**************************************
46//*使用DataReader获得数据库模式信息
47//**************************************
48publicvoidgetSchema()
49{
50SqlCommandcmd;
51cmd=conn.CreateCommand();
52stringsql="selectFid,Fname,Fphonefromfriend";
53cmd.CommandText=sql;
54conn.Open();
55SqlDataReaderreader=cmd.ExecuteReader();
56DataTableSchemaTable=reader.GetSchemaTable();
57
58DataRowCollectionSchemaColumns=SchemaTable.Rows;
59DataColumnCollectionSchemaProps=SchemaTable.Columns;
60foreach(DataRowSchemaColumninSchemaColumns)
61{
62foreach(DataColumnSchemaColumnPropinSchemaProps)
63{
64Console.WriteLine(SchemaColumnProp.ColumnName+"="+SchemaColumn[SchemaColumnProp.ColumnName].ToString());
65}
66}
67reader.Close();
68conn.Close();
69showSplit();
70}
71
72//**************************************
73//*从数据库读取二进制数据的代码段
74//*该代码段只是读取二进制的片断,不是
75//*整个程序,所以不能执行,你可以把它
76//*集成到你的WinForm项目里面。
77//**************************************
78publicvoidgetBinary()
79{
80/**//*
81System.IO.MemoryStreamstream=newSystem.IO.MemoryStream();
82System.IO.BinaryWriterwriter=newSystem.IO.BinaryWriter(stream);
83intBufferSize=1024;
84byte[]Buffer=newByte[BufferSize];
85longOffset=0;
86longBytesRead=0;
87do
88{
89BytesRead=reader.GetBytes(2,Offset,Buffer,0,BufferSize);
90writer.Writer(Buffer,0,(int)BytesRead);
91writer.Flush();
92Offset+=BytesRead;
93}
94while(BytesRead==BufferSize);
95*/
96}
97
98//添加输出分隔
99privatevoidshowSplit()
100{
101Console.WriteLine("\n********************************************************************\n");
102}
103
104publicstaticvoidMain(string[]args)
105{
106SqlReadersqlreader=newSqlReader();
107
108sqlreader.basicReader();
109
110sqlreader.hasParamReader();
111
112sqlreader.hasOledbParamReader();
113
114sqlreader.outParamShow();
115
116sqlreader.multiResult();
117
118sqlreader.getSchema();
119}
Sqldataadapter常用方法
SelectCommand,InsertCommand,UpdateCommand和其它属性,使数据的加载和更新更加方便.DataSet增加/更新/插入到数据库
public static SqlDataAdapter CreateCustomerAdapter(SqlConnection conn)
{
SqlDataAdapter da=new SqlDataAdapter();
SqlCommand cmd;
SqlParameter parm;
//创建选择命令.
cmd= new SqlCommand("SELECT*FROMCustomersWHERECountry=@CountryANDCity=@City",conn);
cmd.Parameters.Add("@Country",SqlDbType.NVarChar,15);
cmd.Parameters.Add("@City",SqlDbType.NVarChar,15);
cmd.SelectCommand.Parameters["@Country"].Value=Country;
cmd.SelectCommand.Parameters["@City"].Value=City;
da.SelectCommand=cmd;
//创建插入命令.
cmd= new SqlCommand("INSERTINTOCustomers(CustomerID,CompanyName)VALUES(@CustomerID,@CompanyName)",conn);
cmd.Parameters.Add("@CustomerID",SqlDbType.NChar,5, "CustomerID");
cmd.Parameters.Add("@CompanyName",SqlDbType.NVarChar,40, "CompanyName");
cmd.SelectCommand.Parameters["@CustomerID"].Value=CustomerID;
cmd.SelectCommand.Parameters["@CompanyName"].Value=CompanyName;
da.InsertCommand =cmd;
//创建删除命令.
cmd= new SqlCommand("DELETEFROMCustomersWHERECustomerID=@CustomerID",conn);
parm=cmd.Parameters.Add("@CustomerID",SqlDbType.NChar,5, "CustomerID");
parm.SourceVersion=DataRowVersion.Original;
cmd.SelectCommand.Parameters["@CustomerID"].Value=CustomerID;
da.DeleteCommand =cmd;
//创建更新命令.
cmd= new SqlCommand("UPDATECustomersSETCustomerID=@CustomerID,CompanyName=@CompanyNameWHERECustomerID=@oldCustomerID",conn);
cmd.Parameters.Add("@CustomerID",SqlDbType.NChar,5, "CustomerID");
cmd.Parameters.Add("@CompanyName",SqlDbType.NVarChar,40, "CompanyName");
cmd.SelectCommand.Parameters["@CustomerID"].Value=CustomerID;//执//行sql语句
cmd.SelectCommand.Parameters["@CompanyName"].Value=CompanyName;
parm=cmd.Parameters.Add("@oldCustomerID",SqlDbType.NChar,5, "CustomerID");
parm.SourceVersion=DataRowVersion.Original;
da.UpdateCommand =cmd;
return da;
}
//其它.
privatevoid update()
{
SqlConnection conn= newSqlConnection(str);
SqlDataAdapter da= newSqlDataAdapter("SELECTorder_id,contractFROMlinhai",conn);
DataSet ds= newDataSet();
da.Fill(ds,"linhai");
da.UpdateCommand =newSqlCommand("UPDATElinhaiSETcontract=@contractWHEREorder_id=@order_id" ,conn);
da.UpdateCommand.Parameters.Add("@contract",SqlDbType.NVarChar,15, "contract");
da.UpdateCommand.Parameters.Add("@order_id",SqlDbType.NVarChar,15, "order_id");
ds.Tables["linhai"].Rows[0]["contract"]= "PPP";
da.Update(ds.Tables[0]);
}
public DataSetCreateCmdsAndUpdate(DataSet myDataSet,string connstr,stringsql,string myTableName)
{
OleDbConnection conn= newOleDbConnection(connstr);
OleDbDataAdapterda= newOleDbDataAdapter();
da.SelectCommand=
主要代码例如下所示:
SelectCommand,InsertCommand,UpdateCommand和其它属性,使数据的加载和更新更加方便.DataSet增加/更新/插入到数据库
public static SqlDataAdapter CreateCustomerAdapter(SqlConnection conn)
{
SqlDataAdapter da=new SqlDataAdapter();
SqlCommand cmd;
SqlParameter parm;
//创建选择命令.
cmd= new SqlCommand("SELECT*FROMCustomersWHERECountry=@CountryANDCity=@City",conn);
cmd.Parameters.Add("@Country",SqlDbType.NVarChar,15);
cmd.Parameters.Add("@City",SqlDbType.NVarChar,15);
cmd.SelectCommand.Parameters["@Country"].Value=Country;
cmd.SelectCommand.Parameters["@City"].Value=City;
da.SelectCommand=cmd;
//创建插入命令.
cmd= new SqlCommand("INSERTINTOCustomers(CustomerID,CompanyName)VALUES(@CustomerID,@CompanyName)",conn);
cmd.Parameters.Add("@CustomerID",SqlDbType.NChar,5, "CustomerID");
cmd.Parameters.Add("@CompanyName",SqlDbType.NVarChar,40, "CompanyName");
cmd.SelectCommand.Parameters["@CustomerID"].Value=CustomerID;
cmd.SelectCommand.Parameters["@CompanyName"].Value=CompanyName;
da.InsertCommand =cmd;
//创建删除命令.
cmd= new SqlCommand("DELETEFROMCustomersWHERECustomerID=@CustomerID",conn);
parm=cmd.Parameters.Add("@CustomerID",SqlDbType.NChar,5, "CustomerID");
parm.SourceVersion=DataRowVersion.Original;
cmd.SelectCommand.Parameters["@CustomerID"].Value=CustomerID;
da.DeleteCommand =cmd;
//创建更新命令.
cmd= new SqlCommand("UPDATECustomersSETCustomerID=@CustomerID,CompanyName=@CompanyNameWHERECustomerID=@oldCustomerID",conn);
cmd.Parameters.Add("@CustomerID",SqlDbType.NChar,5, "CustomerID");
cmd.Parameters.Add("@CompanyName",SqlDbType.NVarChar,40, "CompanyName");
cmd.SelectCommand.Parameters["@CustomerID"].Value=CustomerID;
cmd.SelectCommand.Parameters["@CompanyName"].Value=CompanyName;
parm=cmd.Parameters.Add("@oldCustomerID",SqlDbType.NChar,5, "CustomerID");
parm.SourceVersion=DataRowVersion.Original;
da.UpdateCommand =cmd;
return da;
}
//其它.
privatevoid update()
{
SqlConnection conn= newSqlConnection(str);
SqlDataAdapter da= newSqlDataAdapter("SELECTorder_id,contractFROMlinhai",conn);
DataSet ds= newDataSet();
da.Fill(ds,"linhai");
da.UpdateCommand =newSqlCommand("UPDATElinhaiSETcontract=@contractWHEREorder_id=@order_id" ,conn);
da.UpdateCommand.Para
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- B2C 电子商城 系统 笔记
![提示](https://static.bdocx.com/images/bang_tan.gif)