转摘:ADO.NET 学习笔记

  1 None.gif  
  2 None.gif  // Overview 
  3 None.gif  Data --> DataReader --> Data Provider -->  DataSet 
  4 None.gif Data Provider: Connection, Command, DataAdapter 
  5 None.gif DataSet: DataRelationCollection, 
  6 None.gif DataTable collection(including DataTable)) 
  7 None.gif DataTable: DataRowCollection, DataColumnColl, ConstrainColl 
  8 None.gif DataAdapter: retrieve data from DB, fill tables  in  DataSet 
  9 None.gif 
 10 None.gif 
 11 None.gif  // SQL Server .net data provider 
 12 None.gif   using  System.Data 
 13 None.gif  using  System.Data.SqlClient; 
 14 None.gif  
 15 None.gif  string  strConnection  =   " server=allan; uid=sa; pwd=; database=northwind "
 16 None.gif  string  strCommand  =   " Select productName, unitPrice from Products "
 17 None.gif SqlDataAdapter dataAdapter  =   new  SqlDataAdapter(strCommand, strConnection); 
 18 None.gif DataSet dataSet  =   new  DataSet(); 
 19 None.gif dataAdapter.Fill(dataSet,  " Products " ); 
 20 None.gif DataTable dataTable  =  dataSet.Table[ 0 ]; 
 21 ExpandedBlockStart.gifContractedBlock.gif  foreach (DataRow row  in  dataTable.Rows)  dot.gif
 22InBlock.gif lbProducts.Items.Add(row["ProductName"]+"($" +row["UnitProice"+ ")"); 
 23ExpandedBlockEnd.gif }
 
 24 None.gif 
 25 None.gif  // OLEDB Data provider 
 26 None.gif   using  System.Data.OleDb; 
 27 None.gif  
 28 None.gif  string  strConnection  =   " provider=Microsoft.JET.OLEDB.4.0; data source=c:\\nwind.mdb "
 29 None.gif OleDbDataAdapter dataAdapter  =   
 30 None.gif 
 31 None.gif  // DataGrids 
 32 None.gif   using  System.Data.SqlClient 
 33 None.gif  public   class  Form1: System.Windows.Forms.Form 
 34 ExpandedBlockStart.gifContractedBlock.gif  dot.gif
 35InBlock.gif private System.Windows.Forms.DataGrid dgOrders; 
 36InBlock.gif private System.Data.DataSet dataSet; 
 37InBlock.gif private System.Data.SqlClient.Sqlconnection connection; 
 38InBlock.gif private System.Data.SqlClient.SqlCommand; 
 39InBlock.gif private System.Data.SqlClient.SqlDataAdapter dataAdapter; 
 40InBlock.gif 
 41InBlock.gif private void Form1_Load(object sender, System.EventArgs e) 
 42ExpandedSubBlockStart.gifContractedSubBlock.gif dot.gif
 43InBlock.gif string connectionString = "server=allan; uid=sa; pwd=;database=northWind"
 44InBlock.gif connection = new System.Data.SqlClient.Sqlconnection(connectionString); 
 45InBlock.gif connection.Open(); 
 46InBlock.gif dataSet = new System.Data.DataSet(); 
 47InBlock.gif dataSet.CaseSensitive = true
 48InBlock.gif 
 49InBlock.gif command = new System.Data.SqlClient.SqlCommand(); 
 50InBlock.gif command.Connection = connection; 
 51InBlock.gif command.CommandText = "Select * from Orders"
 52InBlock.gif dataAdapter = new System.DataSqlClient.SqlAdapter(); 
 53InBlock.gif //DataAdapter has SelectCommand, InsertCommand, UpdaterCommand 
 54InBlock.gif //and DeleteCommand 
 55InBlock.gif dataAdapter.SelectCommand = command; 
 56InBlock.gif dataAdapter.TableMappings.Add("Table""Orders"); 
 57InBlock.gif dataAdapter.Fill(dataSet); 
 58InBlock.gif ProductDataGrid.DataSource = dataSet.Table["Orders"].DefaultView; 
 59InBlock.gif 
 60InBlock.gif //Data Relationships, add code below 
 61InBlock.gif command2 = new System.Data.SqlClient(); 
 62InBlock.gif command2.Connection = connection; 
 63InBlock.gif command2.CommandText = "Select * form [order details]"
 64InBlock.gif dataAdapter2 = new System.Data.SqlClient.SqlDataAdapter(); 
 65InBlock.gif dataAdapter2.SelectCommand = command2; 
 66InBlock.gif dataAdapter2.TableMappings.Add("Table""Details"); 
 67InBlock.gif dataAdatper2.Fill(dataSet); 
 68InBlock.gif 
 69InBlock.gif System.Data.DataRelation dataRelation; 
 70InBlock.gif 
 71InBlock.gif System.Data.DataColumn datacolumn1; 
 72InBlock.gif System.Data.DataColumn datacolumn2; 
 73InBlock.gif dataColumn1 = dataSet.Table["Orders"].Columns["OrderID"]; 
 74InBlock.gif dataColumn2 = dataSet.Table["Details"].Columns["OrderID"]; 
 75InBlock.gif dataRelation new System.Data.DataRelation("OrdersToDetails", dataColumn1, dataColumn2); 
 76InBlock.gif dataSet.Relations.Add(dataRelation); 
 77InBlock.gif productDataGrid.dataSource = dataset.DefaultViewManger; 
 78InBlock.gif productDataGrid.DataMember = "Orders"//display Order table, it has mapping to Order Detail 
 79InBlock.gif 
 80ExpandedSubBlockEnd.gif }
 
 81ExpandedBlockEnd.gif }
 
 82 None.gif 
 83 None.gif  // Update Data using ADO.net 
 84 None.gif   string  cmd  =   " update Products set  "
 85 None.gif  
 86 None.gif  // creat connection, comand obj 
 87 None.gif  command.Connection  =  connection; 
 88 None.gif command.CommandText = cmd; 
 89 None.gif command.ExecuteNonQuery(); 
 90 None.gif 
 91 None.gif  // Transaction 1.SQL Transaction 2. Connection Transaction 
 92 None.gif 
 93 None.gif  // 1. SQL Transaction 
 94 None.gif  // creat connection and command obj 
 95 None.gif  connnetion.open(); 
 96 None.gif command.Connection  =  conntection; 
 97 None.gif command.CommandText  = " <storedProcedureName> " // SP has used transaction 
 98 None.gif  command.CommandType =  CommandType.StoredProcedure; 
 99 None.gif System.Data.SqlClient.SqlParamenter param; 
100 None.gif param  =  command.Parameters.Add( " @ProductID " , SqlDbType.Int); 
101 None.gif param.Direction  =  ParameterDirection.Input; 
102 None.gif param.Value  =  txtProductID.Text.Trim(); 
103 None.gif   // pass all parameter need by StoredProcedure 
104 None.gif  command.ExecuteNonQuery(); 
105 None.gif 
106 None.gif  // 2. Connection Transaction 
107 None.gif  // create connection and command obj 
108 None.gif   
109 None.gif System.DataSqlClient.SqlTransaction transaction; 
110 None.gif transaction  =  connection.BeginTransaction(); 
111 None.gif command.Transaction  =  transaction; 
112 None.gif command.Connection  =  connection; 
113 None.gif  try  
114 ExpandedBlockStart.gifContractedBlock.gif  dot.gif
115InBlock.gif command.CommandText="<SP>"//this SP has no transaction in it 
116InBlock.gif command.CommandType = CommandType.StoredProcedure; 
117InBlock.gif System.DataSqlClient.SqlParameter param; 
118InBlock.gif .. 
119ExpandedBlockEnd.gif }
 
120 None.gif  catch  (Exception ex) 
121 ExpandedBlockStart.gifContractedBlock.gif  dot.gif
122InBlock.gif //give Err message 
123InBlock.gif transaction.Rollback(); 
124ExpandedBlockEnd.gif }
 
125 None.gif 
126 None.gif  // Update DataSet, then update DB at once 
127 None.gif  // create connection, command obj, using command.Transaction 
128 None.gif   
129 None.gif param  =  command.Parameters.Add( " @QupplierID " , SqlDbType.Int); 
130 None.gif param.Direction  =  ParameterDirection.Input; 
131 None.gif param.SourceColumn  =   " SupplierID "
132 None.gif param.SourceVersion  =  DataRowVersion.Current;  // which version 
133 None.gif   try  
134 ExpandedBlockStart.gifContractedBlock.gif  dot.gif //ADO.net will loop each row to update DB 
135InBlock.gif int rowsUpdated = dataAdapter.Update(dataSet, "Products"); 
136InBlock.gif transaction.Commit(); 
137ExpandedBlockEnd.gif }
 
138 None.gif  catch  
139 ExpandedBlockStart.gifContractedBlock.gif  dot.gif
140InBlock.gif transactrion.Rollback(); 
141ExpandedBlockEnd.gif }
 
142 None.gif 
143 None.gif 
144 None.gif  //  Concurrency Update Database 
145 None.gif  // compare will original data, avoid conflict 
146 None.gif  // Give SQL SP, both Original and Current Data as parameter 
147 None.gif  // SQL will write like this: update  where  SupplierID = @OldSupplierID 
148 None.gif 
149 None.gif  // original version 
150 None.gif  param  =  command.Parameters.Add( " @OldSupplierID " , SqlDbtype.Int); 
151 None.gif param.Driection  =  ParameterDiretion.Input; 
152 None.gif param.SourceColumn  = " SupplierID "
153 None.gif param.SourceVersion  =  DataRowVersion.Original; 
154 None.gif  // current version 
155 None.gif  param  =  command.Parameters.Add( " @SupplierID " , SqlDbtype.Int); 
156 None.gif param.Driection  =  ParameterDiretion.Input; 
157 None.gif param.SourceColumn  = " SupplierID "
158 None.gif param.SourceVersion  =  DataRowVersion.Current; 
159 None.gif 
160 None.gif  // SqlCommandBuilder 
161 None.gif  SqlCommandBuilder bldr  =   new  SqlCommandBuilder(dataAdapter); 
162 None.gif dataAdapter.UpdateCommand  =  bldr.GetUpdateCommand(); 
163 None.gif dataAdapter.DeleteCommand  =  bldr.GetDelteCommand(); 
164 None.gif dataAdapter.InsertCommand  =  bldr.GetInsertCommand(); 
165 None.gif  try  
166 ExpandedBlockStart.gifContractedBlock.gif  dot.gif
167InBlock.gif //This need not SQL, for bldr has build it for us. 
168InBlock.gif int rowsUpdated = dataAdapter.Update(dataSet, "Products"); 
169ExpandedBlockEnd.gif }
 
170 ExpandedBlockStart.gifContractedBlock.gif  catch   dot.gif {}  

转载于:https://www.cnblogs.com/shfranklee/archive/2006/01/18/319886.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值