C# 数据表(Dataset)操作 合并 查询一箩筐

  1 private void button1_Click(object sender, EventArgs e)
  2 
  3      {//避免增加除主键外的相同记录
  4         string MyCompanyName="深圳唯佳物流公司";
  5         string MyPhone="0589-86523158";
  6         string MySQL="SELECT * FROM Shippers";
  7         string MyConnectionString="Data Source = .;Database =    Northwind;uid=sa;pwd=top-each123;Integrated Security=SSPI";          
  8         SqlDataAdapter  MyAdapter=new SqlDataAdapter(MySQL,MyConnectionString);
  9         SqlCommandBuilder MyBuilder=new SqlCommandBuilder(MyAdapter);
 10         DataSet MySet=new DataSet();
 11         MyAdapter.Fill(MySet, "Shippers");
 12         DataColumn []MyKeys=new DataColumn[2];
 13         MyKeys[0] = MySet.Tables["Shippers"].Columns["CompanyName"];
 14         MyKeys[1] = MySet.Tables["Shippers"].Columns["Phone"];
 15         MySet.Tables["Shippers"].PrimaryKey = MyKeys;
 16         string[] MySupplier = {MyCompanyName ,MyPhone};
 17         DataRow MyFindRow = MySet.Tables["Shippers"].Rows.Find(MySupplier);
 18         if (MyFindRow == null)
 19         {
 20             DataRow MyNewRow =MySet.Tables["Shippers"].NewRow();
 21             MyNewRow["CompanyName"] = MySupplier[0];
 22             MyNewRow["Phone"] = MySupplier[1];
 23             MySet.Tables["Shippers"].Rows.Add(MyNewRow);
 24             MyAdapter.Update(MySet, "Shippers");
 25             MessageBox.Show("增加记录操作成功!", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
 26         }
 27         else
 28             MessageBox.Show("该记录已经存在!", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);                  
 29      }
 30  
 31      private void button2_Click(object sender, EventArgs e)
 32      {//以参数化方式增加数据库记录
 33         string MyCompanyName="深圳唯佳物流公司";
 34         string MyPhone="0589-86523158";
 35         string MyConnectionString = "Data Source = .;Database =  Northwind;uid=sa;pwd=top-each123;Integrated Security=SSPI";          
 36         SqlConnection MyConnection=null;
 37         try
 38         {
 39           MyConnection=new SqlConnection(MyConnectionString);
 40           MyConnection.Open();
 41           SqlCommand MyCommand=MyConnection.CreateCommand();
 42           MyCommand.CommandText = "INSERT INTO Shippers VALUES(@CompanyName, @Phone)";
 43           MyCommand.Parameters.Add(new SqlParameter("@CompanyName", SqlDbType.VarChar,30));
 44           MyCommand.Parameters.Add(new SqlParameter("@Phone", SqlDbType.VarChar, 30));
 45           MyCommand.Prepare();
 46           MyCommand.Parameters["@CompanyName"].Value =MyCompanyName;
 47           MyCommand.Parameters["@Phone"].Value =MyPhone;
 48           MyCommand.ExecuteNonQuery();
 49           MessageBox.Show("增加记录操作成功!", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
 50         }
 51         catch(Exception ex)
 52         {
 53           MessageBox.Show("增加记录出现错误:" + ex.Message, "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
 54         }
 55         finally
 56         {
 57             MyConnection.Close();
 58         }
 59      }
 60  
 61      private void button3_Click(object sender, EventArgs e)
 62      {//使用事务实现更新多个数据表
 63          try
 64          {
 65              string MyConnectionString = "Data Source=.;Initial Catalog=Northwind;uid=sa;pwd=top-each123;Integrated Security=True";
 66              string MySQL1 = "INSERT Customers (CustomerID, CompanyName) VALUES ('BOGUS','Bogus Company')";
 67              string MySQL2 = "INSERT Orders (CustomerID, EmployeeID,  ShipVia) VALUES ('BOGUS', 1, 1)";
 68              string MySQL3 = "DELETE FROM Orders WHERE CustomerID = 'BOGUS'";
 69              string MySQL4 = "DELETE FROM Customers WHERE CustomerID = 'BOGUS'";
 70              SqlConnection MyConnection = new SqlConnection(MyConnectionString);
 71              SqlTransaction MyTransaction = null;
 72              int MyAffectedCount = 0;
 73              string MyTitle = "";
 74              MyConnection.Open();
 75              try
 76              {                 
 77                  MyTransaction = MyConnection.BeginTransaction(System.Data.IsolationLevel.RepeatableRead);
 78                  MyTitle = "插入操作提示";
 79                  SqlCommand MyCommand = new SqlCommand(MySQL1, MyConnection);
 80                  MyCommand.CommandType = CommandType.Text;
 81                  MyCommand.Transaction = MyTransaction;
 82                  MyAffectedCount = MyCommand.ExecuteNonQuery();
 83                  MyCommand.CommandText = MySQL2;
 84                  MyAffectedCount += MyCommand.ExecuteNonQuery();
 85                  MyTransaction.Commit();
 86                  MyTitle = "删除操作提示";
 87                  MyTransaction = MyConnection.BeginTransaction(System.Data.IsolationLevel.RepeatableRead);
 88                  MyCommand.CommandText = MySQL3;
 89                  MyCommand.Transaction = MyTransaction;
 90                  MyAffectedCount += MyCommand.ExecuteNonQuery();
 91                  MyCommand.CommandText = MySQL4;
 92                  MyAffectedCount += MyCommand.ExecuteNonQuery();
 93                  MyTransaction.Commit();
 94              }
 95              catch (SqlException ex)
 96              {
 97                  MessageBox.Show(ex.Message, MyTitle, MessageBoxButtons.OK, MessageBoxIcon.Information);
 98                  try
 99                  {
100                      MyTransaction.Rollback();
101                  }
102                  catch (SqlException MyEx)
103                  {
104                      MessageBox.Show(MyEx.Message, MyTitle, MessageBoxButtons.OK, MessageBoxIcon.Information);
105                  }
106              }             
107              finally
108              {
109                  MyConnection.Close();
110                  string MyInfo;
111                  if (MyAffectedCount == 4)
112                      MyInfo = "成功实现插入和删除事务操作";
113                  else
114                      MyInfo = "实现插入和删除事务操作失败,请检查Customers和Orders数据表";
115                  MessageBox.Show(MyInfo, "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
116              }
117          }
118          catch (Exception ex)
119          {
120              MessageBox.Show(ex.Message, "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);            
121          }
122      }
123  
124      private void button4_Click(object sender, EventArgs e)
125      {//创建隐式事务管理数据库更新
126          //在【添加引用】对话框的【.NET】标签页列表视图中选择“System.Transactions”选项
127          using(TransactionScope MyScope = new TransactionScope())
128          {
129              string MyConnectionString = "Data Source=.;Initial Catalog=Northwind;uid=sa;pwd=top-each123;Integrated Security=True";
130              string MySQL1 = "INSERT Customers (CustomerID, CompanyName) VALUES ('BOGUS','Bogus Company')";
131              string MySQL2 = "INSERT Orders (CustomerID, EmployeeID,  ShipVia) VALUES ('BOGUS', 1, 1)";
132              string MySQL3 = "DELETE FROM Orders WHERE CustomerID = 'BOGUS'";
133              string MySQL4 = "DELETE FROM Customers WHERE CustomerID = 'BOGUS'";
134              SqlConnection MyConnection = new SqlConnection(MyConnectionString);
135              int MyAffectedCount = 0;
136              string MyTitle = "";               
137              try
138              {
139                  MyConnection.Open();
140                  MyTitle = "插入操作提示";          
141                  SqlCommand MyCommand= new SqlCommand(MySQL1, MyConnection);
142                  MyCommand.CommandType = CommandType.Text;
143                  MyAffectedCount = MyCommand.ExecuteNonQuery();
144                  MyCommand.CommandText = MySQL2;
145                  MyAffectedCount += MyCommand.ExecuteNonQuery();
146                  MyTitle = "删除操作提示";
147                  MyCommand.CommandText = MySQL3;
148                  MyAffectedCount += MyCommand.ExecuteNonQuery();
149                  MyCommand.CommandText = MySQL4;
150                  MyAffectedCount += MyCommand.ExecuteNonQuery();
151                  MyScope.Complete();
152               }
153               catch (SqlException ex)
154               {
155                  MessageBox.Show(ex.Message, MyTitle, MessageBoxButtons.OK, MessageBoxIcon.Information);
156               }
157               finally
158               {
159                  MyConnection.Close();
160                  string  MyInfo ;
161                  if(MyAffectedCount == 4)
162                      MyInfo = "成功实现插入和删除事务操作";
163                  else
164                      MyInfo = "实现插入和删除事务操作失败,请检查Customers和Orders数据表";
165                  MessageBox.Show(MyInfo, "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
166               }
167          }
168      }
169  
170      private void button5_Click(object sender, EventArgs e)
171      {//以批量方式导入导出数据库记录
172          string MyConnectionString = "Data Source=.;Initial Catalog=shop;uid=sa;pwd=top-each123;Integrated Security=True";
173          string MySQL = "SELECT * into 新客户表 From tbl_order Where 1<>1";
174          SqlConnection MyConnection = null;
175          try
176          {
177              //新建一个数据表“新客户表”
178              MyConnection = new SqlConnection(MyConnectionString);
179              SqlCommand MyCommand = new SqlCommand(MySQL, MyConnection);
180              MyCommand.Connection.Open();
181              MyCommand.ExecuteNonQuery();
182              //从“Customers”数据表批量导入数据库记录到“新客户表”
183              DataSet MySet=new DataSet();
184              SqlDataAdapter MyAdapter=new SqlDataAdapter("Select top 1000 * From tbl_order",MyConnection);
185              MyAdapter.Fill(MySet);
186              SqlBulkCopy MyBulkCopy=new SqlBulkCopy(MyConnection);
187              MyBulkCopy.DestinationTableName = "新客户表";
188              MyBulkCopy.WriteToServer(MySet.Tables[0]);
189              MessageBox.Show("从“Customers”数据表批量导入数据库记录到“新客户表”操作成功!", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
190          }
191          catch (SqlException ex)
192          {
193              MessageBox.Show(ex.Message, "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
194          }
195          finally
196          {
197              MyConnection.Close();
198          }
199      }
200  
201      private void button6_Click(object sender, EventArgs e)
202      {//合并两个数据表的数据库记录
203          string MyConnectionString = "Data Source=.;Initial Catalog=Northwind;uid=sa;pwd=top-each123;Integrated Security=True";
204          SqlConnection MyConnection = null;
205          try
206          {
207              //创建“Germany”数据表
208              DataTable MyGermanyTable = new DataTable("Germany");
209              MyConnection = new SqlConnection(MyConnectionString);
210              SqlDataAdapter MyAdapter = new SqlDataAdapter("Select * From Customers Where Country='Germany'", MyConnection);
211              MyAdapter.Fill(MyGermanyTable);
212              //创建“Mexico”数据表
213              DataTable MyMexicoTable = new DataTable("Mexico");
214              MyConnection = new SqlConnection(MyConnectionString);
215              MyAdapter = new SqlDataAdapter("Select * From Customers Where Country='Mexico'", MyConnection);
216              MyAdapter.Fill(MyMexicoTable);
217              //合并两个数据表
218              MyMexicoTable.Merge(MyGermanyTable);
219              this.dataGridView1.DataSource = MyMexicoTable;
220              MessageBox.Show("合并两个数据表操作成功!", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
221          }
222          catch (SqlException ex)
223          {
224              MessageBox.Show(ex.Message, "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
225          }
226          finally
227          {
228              MyConnection.Close();
229          }
230      }
231  
232      private void button7_Click(object sender, EventArgs e)
233      {//使用数据表获取数据读取器内容
234          string MyConnectionString = "Data Source=.;Initial Catalog=Northwind;uid=sa;pwd=top-each123;Integrated Security=True";
235          SqlConnection MyConnection = null;
236          try
237          {
238              MyConnection = new SqlConnection(MyConnectionString);
239              SqlCommand MyCommand = new SqlCommand("Select * From Customers", MyConnection);
240              MyConnection.Open();
241              SqlDataReader MyReader = MyCommand.ExecuteReader();
242              DataTable MyTable = new DataTable();
243              MyTable.Load(MyReader);
244              this.dataGridView1.DataSource = MyTable;
245              MessageBox.Show("使用数据表获取数据读取器内容操作成功!", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
246          }
247          catch (SqlException ex)
248          {
249              MessageBox.Show(ex.Message, "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
250          }
251          finally
252          {
253              MyConnection.Close();
254          }  
255      }
256  
257      private void button8_Click(object sender, EventArgs e)
258      {//使用数据读取器获取多个结果集
259          string MyConnectionString = "Data Source=.;Initial Catalog=Northwind;uid=sa;pwd=top-each123;Integrated Security=True";
260          SqlConnection MyConnection = null;
261          try
262          {
263             //定义并打开SqlConnection 对象
264             MyConnection=new SqlConnection(MyConnectionString);
265             MyConnection.Open();
266             //定义SqlCommand 获取多结果集
267             String MySQL = "Select top 4  CompanyName From Customers;Select top 5  City,Region From Employees;Select top 6 ProductName From Products";
268             SqlCommand MyCommand =new SqlCommand(MySQL, MyConnection);
269             MyCommand.CommandType = CommandType.Text;
270             //定义并创建SqlDataReader
271             //当关闭SqlDataReader时关闭数据连接
272             string MyInfo="";
273             SqlDataReader MyReader= MyCommand.ExecuteReader(CommandBehavior. CloseConnection);
274            if(MyReader.HasRows)
275            {
276              MyInfo+="
第1个结果集的第一个字段所有记录数据是:";
277              while(MyReader.Read())
278              {               
279                MyInfo+="
"+MyReader[0].ToString();
280              }
281              int MyCount= 1;             
282              while(MyReader.NextResult())
283              {
284                MyCount = MyCount + 1;
285                MyInfo+=""+MyCount+"个结果集的第一个字段所有记录数据是:";
286                while(MyReader.Read())
287                {
288                    MyInfo+="
"+MyReader[0].ToString();
289                }                 
290              }
291            }
292            MyReader.Close();
293            MessageBox.Show(MyInfo, "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
294          }
295          catch (SqlException ex)
296          {
297              MessageBox.Show(ex.Message, "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
298          }
299          finally
300          {
301              if(MyConnection.State ==ConnectionState.Open)
302                  MyConnection.Close();
303          }  
304      }
305  
306      private void button9_Click(object sender, EventArgs e)
307      {//以参数化方式查询数据库记录  
308          SqlConnection MyConnection = null;
309          try
310          {
311              string MySQL = "Select * From Customers Where Country=@MyCountry";
312              string MyConnectionString = "Data Source = localhost;Database = Northwind;uid=sa;pwd=top-each123;Integrated Security=SSPI";
313              SqlParameter MySqlParameter = new SqlParameter();
314              MyConnection = new SqlConnection(MyConnectionString);
315              MyConnection.Open();
316              SqlCommand MyCommand = new SqlCommand(MySQL, MyConnection);
317              MySqlParameter.ParameterName = "@MyCountry";
318              MySqlParameter.Value = "Germany";
319              MyCommand.Parameters.Clear();
320              MyCommand.Parameters.Add(MySqlParameter);
321              DataTable MyTable = new DataTable();
322              SqlDataAdapter MyAdapter = new SqlDataAdapter(MyCommand);
323              MyAdapter.Fill(MyTable);
324              this.dataGridView1.DataSource = MyTable;
325          }
326          catch (Exception ex)
327          {
328              MessageBox.Show(ex.Message, "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
329          }
330          finally
331          {
332              if (MyConnection.State == ConnectionState.Open)
333                  MyConnection.Close();
334          }
335      }
336  
337      private void button10_Click(object sender, EventArgs e)
338      {//创建和使用无连接数据表
339          try
340          {
341              //创建数据表
342              DataColumn[] MyKey = new DataColumn[1];
343              DataTable MyTable = new DataTable("MyClassmate");
344              DataColumn MyColumn = new DataColumn();
345              MyColumn.DataType = System.Type.GetType("System.Int32");
346              MyColumn.ColumnName = "ID";
347              MyTable.Columns.Add(MyColumn);
348              MyKey[0] = MyColumn;
349              MyTable.PrimaryKey = MyKey;
350              MyTable.Columns.Add("Name", typeof(String));
351              MyTable.Columns.Add("Tel", typeof(String));
352              MyTable.Columns.Add("MP", typeof(String));
353              MyTable.Columns.Add("Company", typeof(String));
354              //在数据表中添加记录一
355              DataRow MyRow = MyTable.NewRow();
356              MyRow["ID"] = 87121;
357              MyRow["Name"] = "罗斌";
358              MyRow["Tel"] = "023-40231026";
359              MyRow["MP"] = "13036371686";
360              MyRow["Company"] = "无锡宝特软件有限公司";
361              MyTable.Rows.Add(MyRow);
362              //在数据表中添加记录二
363              MyRow = MyTable.NewRow();
364              MyRow["ID"] = "87123";
365              MyRow["Name"] = "蒋兰坤";
366              MyRow["Tel"] = "023-68015059";
367              MyRow["MP"] = "13062308583";
368              MyRow["Company"] = "重庆百货大楼股份有限公司";
369              MyTable.Rows.Add(MyRow);
370              //在数据表中添加记录三
371              MyRow = MyTable.NewRow();
372              MyRow["ID"] = 87124;
373              MyRow["Name"] = "王彬";
374              MyRow["Tel"] = "023-40513307";
375              MyRow["MP"] = "13883070418";
376              MyRow["Company"] = "重庆日报印刷厂";
377              MyTable.Rows.Add(MyRow);
378              this.dataGridView1.DataSource = MyTable;
379          }
380          catch (Exception ex)
381          {
382              MessageBox.Show(ex.Message, "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
383          }
384      }
385  
386 转 http://www.cnblogs.com/xiaofengfeng/archive/2013/02/01/2889354.html
387 ---恢复内容结束---
388 
389 private void button1_Click(object sender, EventArgs e)
390      {//避免增加除主键外的相同记录
391         string MyCompanyName="深圳唯佳物流公司";
392         string MyPhone="0589-86523158";
393         string MySQL="SELECT * FROM Shippers";
394         string MyConnectionString="Data Source = .;Database =    Northwind;uid=sa;pwd=top-each123;Integrated Security=SSPI";          
395         SqlDataAdapter  MyAdapter=new SqlDataAdapter(MySQL,MyConnectionString);
396         SqlCommandBuilder MyBuilder=new SqlCommandBuilder(MyAdapter);
397         DataSet MySet=new DataSet();
398         MyAdapter.Fill(MySet, "Shippers");
399         DataColumn []MyKeys=new DataColumn[2];
400         MyKeys[0] = MySet.Tables["Shippers"].Columns["CompanyName"];
401         MyKeys[1] = MySet.Tables["Shippers"].Columns["Phone"];
402         MySet.Tables["Shippers"].PrimaryKey = MyKeys;
403         string[] MySupplier = {MyCompanyName ,MyPhone};
404         DataRow MyFindRow = MySet.Tables["Shippers"].Rows.Find(MySupplier);
405         if (MyFindRow == null)
406         {
407             DataRow MyNewRow =MySet.Tables["Shippers"].NewRow();
408             MyNewRow["CompanyName"] = MySupplier[0];
409             MyNewRow["Phone"] = MySupplier[1];
410             MySet.Tables["Shippers"].Rows.Add(MyNewRow);
411             MyAdapter.Update(MySet, "Shippers");
412             MessageBox.Show("增加记录操作成功!", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
413         }
414         else
415             MessageBox.Show("该记录已经存在!", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);                  
416      }
417  
418      private void button2_Click(object sender, EventArgs e)
419      {//以参数化方式增加数据库记录
420         string MyCompanyName="深圳唯佳物流公司";
421         string MyPhone="0589-86523158";
422         string MyConnectionString = "Data Source = .;Database =  Northwind;uid=sa;pwd=top-each123;Integrated Security=SSPI";          
423         SqlConnection MyConnection=null;
424         try
425         {
426           MyConnection=new SqlConnection(MyConnectionString);
427           MyConnection.Open();
428           SqlCommand MyCommand=MyConnection.CreateCommand();
429           MyCommand.CommandText = "INSERT INTO Shippers VALUES(@CompanyName, @Phone)";
430           MyCommand.Parameters.Add(new SqlParameter("@CompanyName", SqlDbType.VarChar,30));
431           MyCommand.Parameters.Add(new SqlParameter("@Phone", SqlDbType.VarChar, 30));
432           MyCommand.Prepare();
433           MyCommand.Parameters["@CompanyName"].Value =MyCompanyName;
434           MyCommand.Parameters["@Phone"].Value =MyPhone;
435           MyCommand.ExecuteNonQuery();
436           MessageBox.Show("增加记录操作成功!", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
437         }
438         catch(Exception ex)
439         {
440           MessageBox.Show("增加记录出现错误:" + ex.Message, "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
441         }
442         finally
443         {
444             MyConnection.Close();
445         }
446      }
447  
448      private void button3_Click(object sender, EventArgs e)
449      {//使用事务实现更新多个数据表
450          try
451          {
452              string MyConnectionString = "Data Source=.;Initial Catalog=Northwind;uid=sa;pwd=top-each123;Integrated Security=True";
453              string MySQL1 = "INSERT Customers (CustomerID, CompanyName) VALUES ('BOGUS','Bogus Company')";
454              string MySQL2 = "INSERT Orders (CustomerID, EmployeeID,  ShipVia) VALUES ('BOGUS', 1, 1)";
455              string MySQL3 = "DELETE FROM Orders WHERE CustomerID = 'BOGUS'";
456              string MySQL4 = "DELETE FROM Customers WHERE CustomerID = 'BOGUS'";
457              SqlConnection MyConnection = new SqlConnection(MyConnectionString);
458              SqlTransaction MyTransaction = null;
459              int MyAffectedCount = 0;
460              string MyTitle = "";
461              MyConnection.Open();
462              try
463              {                 
464                  MyTransaction = MyConnection.BeginTransaction(System.Data.IsolationLevel.RepeatableRead);
465                  MyTitle = "插入操作提示";
466                  SqlCommand MyCommand = new SqlCommand(MySQL1, MyConnection);
467                  MyCommand.CommandType = CommandType.Text;
468                  MyCommand.Transaction = MyTransaction;
469                  MyAffectedCount = MyCommand.ExecuteNonQuery();
470                  MyCommand.CommandText = MySQL2;
471                  MyAffectedCount += MyCommand.ExecuteNonQuery();
472                  MyTransaction.Commit();
473                  MyTitle = "删除操作提示";
474                  MyTransaction = MyConnection.BeginTransaction(System.Data.IsolationLevel.RepeatableRead);
475                  MyCommand.CommandText = MySQL3;
476                  MyCommand.Transaction = MyTransaction;
477                  MyAffectedCount += MyCommand.ExecuteNonQuery();
478                  MyCommand.CommandText = MySQL4;
479                  MyAffectedCount += MyCommand.ExecuteNonQuery();
480                  MyTransaction.Commit();
481              }
482              catch (SqlException ex)
483              {
484                  MessageBox.Show(ex.Message, MyTitle, MessageBoxButtons.OK, MessageBoxIcon.Information);
485                  try
486                  {
487                      MyTransaction.Rollback();
488                  }
489                  catch (SqlException MyEx)
490                  {
491                      MessageBox.Show(MyEx.Message, MyTitle, MessageBoxButtons.OK, MessageBoxIcon.Information);
492                  }
493              }             
494              finally
495              {
496                  MyConnection.Close();
497                  string MyInfo;
498                  if (MyAffectedCount == 4)
499                      MyInfo = "成功实现插入和删除事务操作";
500                  else
501                      MyInfo = "实现插入和删除事务操作失败,请检查Customers和Orders数据表";
502                  MessageBox.Show(MyInfo, "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
503              }
504          }
505          catch (Exception ex)
506          {
507              MessageBox.Show(ex.Message, "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);            
508          }
509      }
510  
511      private void button4_Click(object sender, EventArgs e)
512      {//创建隐式事务管理数据库更新
513          //在【添加引用】对话框的【.NET】标签页列表视图中选择“System.Transactions”选项
514          using(TransactionScope MyScope = new TransactionScope())
515          {
516              string MyConnectionString = "Data Source=.;Initial Catalog=Northwind;uid=sa;pwd=top-each123;Integrated Security=True";
517              string MySQL1 = "INSERT Customers (CustomerID, CompanyName) VALUES ('BOGUS','Bogus Company')";
518              string MySQL2 = "INSERT Orders (CustomerID, EmployeeID,  ShipVia) VALUES ('BOGUS', 1, 1)";
519              string MySQL3 = "DELETE FROM Orders WHERE CustomerID = 'BOGUS'";
520              string MySQL4 = "DELETE FROM Customers WHERE CustomerID = 'BOGUS'";
521              SqlConnection MyConnection = new SqlConnection(MyConnectionString);
522              int MyAffectedCount = 0;
523              string MyTitle = "";               
524              try
525              {
526                  MyConnection.Open();
527                  MyTitle = "插入操作提示";          
528                  SqlCommand MyCommand= new SqlCommand(MySQL1, MyConnection);
529                  MyCommand.CommandType = CommandType.Text;
530                  MyAffectedCount = MyCommand.ExecuteNonQuery();
531                  MyCommand.CommandText = MySQL2;
532                  MyAffectedCount += MyCommand.ExecuteNonQuery();
533                  MyTitle = "删除操作提示";
534                  MyCommand.CommandText = MySQL3;
535                  MyAffectedCount += MyCommand.ExecuteNonQuery();
536                  MyCommand.CommandText = MySQL4;
537                  MyAffectedCount += MyCommand.ExecuteNonQuery();
538                  MyScope.Complete();
539               }
540               catch (SqlException ex)
541               {
542                  MessageBox.Show(ex.Message, MyTitle, MessageBoxButtons.OK, MessageBoxIcon.Information);
543               }
544               finally
545               {
546                  MyConnection.Close();
547                  string  MyInfo ;
548                  if(MyAffectedCount == 4)
549                      MyInfo = "成功实现插入和删除事务操作";
550                  else
551                      MyInfo = "实现插入和删除事务操作失败,请检查Customers和Orders数据表";
552                  MessageBox.Show(MyInfo, "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
553               }
554          }
555      }
556  
557      private void button5_Click(object sender, EventArgs e)
558      {//以批量方式导入导出数据库记录
559          string MyConnectionString = "Data Source=.;Initial Catalog=shop;uid=sa;pwd=top-each123;Integrated Security=True";
560          string MySQL = "SELECT * into 新客户表 From tbl_order Where 1<>1";
561          SqlConnection MyConnection = null;
562          try
563          {
564              //新建一个数据表“新客户表”
565              MyConnection = new SqlConnection(MyConnectionString);
566              SqlCommand MyCommand = new SqlCommand(MySQL, MyConnection);
567              MyCommand.Connection.Open();
568              MyCommand.ExecuteNonQuery();
569              //从“Customers”数据表批量导入数据库记录到“新客户表”
570              DataSet MySet=new DataSet();
571              SqlDataAdapter MyAdapter=new SqlDataAdapter("Select top 1000 * From tbl_order",MyConnection);
572              MyAdapter.Fill(MySet);
573              SqlBulkCopy MyBulkCopy=new SqlBulkCopy(MyConnection);
574              MyBulkCopy.DestinationTableName = "新客户表";
575              MyBulkCopy.WriteToServer(MySet.Tables[0]);
576              MessageBox.Show("从“Customers”数据表批量导入数据库记录到“新客户表”操作成功!", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
577          }
578          catch (SqlException ex)
579          {
580              MessageBox.Show(ex.Message, "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
581          }
582          finally
583          {
584              MyConnection.Close();
585          }
586      }
587  
588      private void button6_Click(object sender, EventArgs e)
589      {//合并两个数据表的数据库记录
590          string MyConnectionString = "Data Source=.;Initial Catalog=Northwind;uid=sa;pwd=top-each123;Integrated Security=True";
591          SqlConnection MyConnection = null;
592          try
593          {
594              //创建“Germany”数据表
595              DataTable MyGermanyTable = new DataTable("Germany");
596              MyConnection = new SqlConnection(MyConnectionString);
597              SqlDataAdapter MyAdapter = new SqlDataAdapter("Select * From Customers Where Country='Germany'", MyConnection);
598              MyAdapter.Fill(MyGermanyTable);
599              //创建“Mexico”数据表
600              DataTable MyMexicoTable = new DataTable("Mexico");
601              MyConnection = new SqlConnection(MyConnectionString);
602              MyAdapter = new SqlDataAdapter("Select * From Customers Where Country='Mexico'", MyConnection);
603              MyAdapter.Fill(MyMexicoTable);
604              //合并两个数据表
605              MyMexicoTable.Merge(MyGermanyTable);
606              this.dataGridView1.DataSource = MyMexicoTable;
607              MessageBox.Show("合并两个数据表操作成功!", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
608          }
609          catch (SqlException ex)
610          {
611              MessageBox.Show(ex.Message, "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
612          }
613          finally
614          {
615              MyConnection.Close();
616          }
617      }
618  
619      private void button7_Click(object sender, EventArgs e)
620      {//使用数据表获取数据读取器内容
621          string MyConnectionString = "Data Source=.;Initial Catalog=Northwind;uid=sa;pwd=top-each123;Integrated Security=True";
622          SqlConnection MyConnection = null;
623          try
624          {
625              MyConnection = new SqlConnection(MyConnectionString);
626              SqlCommand MyCommand = new SqlCommand("Select * From Customers", MyConnection);
627              MyConnection.Open();
628              SqlDataReader MyReader = MyCommand.ExecuteReader();
629              DataTable MyTable = new DataTable();
630              MyTable.Load(MyReader);
631              this.dataGridView1.DataSource = MyTable;
632              MessageBox.Show("使用数据表获取数据读取器内容操作成功!", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
633          }
634          catch (SqlException ex)
635          {
636              MessageBox.Show(ex.Message, "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
637          }
638          finally
639          {
640              MyConnection.Close();
641          }  
642      }
643  
644      private void button8_Click(object sender, EventArgs e)
645      {//使用数据读取器获取多个结果集
646          string MyConnectionString = "Data Source=.;Initial Catalog=Northwind;uid=sa;pwd=top-each123;Integrated Security=True";
647          SqlConnection MyConnection = null;
648          try
649          {
650             //定义并打开SqlConnection 对象
651             MyConnection=new SqlConnection(MyConnectionString);
652             MyConnection.Open();
653             //定义SqlCommand 获取多结果集
654             String MySQL = "Select top 4  CompanyName From Customers;Select top 5  City,Region From Employees;Select top 6 ProductName From Products";
655             SqlCommand MyCommand =new SqlCommand(MySQL, MyConnection);
656             MyCommand.CommandType = CommandType.Text;
657             //定义并创建SqlDataReader
658             //当关闭SqlDataReader时关闭数据连接
659             string MyInfo="";
660             SqlDataReader MyReader= MyCommand.ExecuteReader(CommandBehavior. CloseConnection);
661            if(MyReader.HasRows)
662            {
663              MyInfo+="
第1个结果集的第一个字段所有记录数据是:";
664              while(MyReader.Read())
665              {               
666                MyInfo+="
"+MyReader[0].ToString();
667              }
668              int MyCount= 1;             
669              while(MyReader.NextResult())
670              {
671                MyCount = MyCount + 1;
672                MyInfo+=""+MyCount+"个结果集的第一个字段所有记录数据是:";
673                while(MyReader.Read())
674                {
675                    MyInfo+="
"+MyReader[0].ToString();
676                }                 
677              }
678            }
679            MyReader.Close();
680            MessageBox.Show(MyInfo, "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
681          }
682          catch (SqlException ex)
683          {
684              MessageBox.Show(ex.Message, "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
685          }
686          finally
687          {
688              if(MyConnection.State ==ConnectionState.Open)
689                  MyConnection.Close();
690          }  
691      }
692  
693      private void button9_Click(object sender, EventArgs e)
694      {//以参数化方式查询数据库记录  
695          SqlConnection MyConnection = null;
696          try
697          {
698              string MySQL = "Select * From Customers Where Country=@MyCountry";
699              string MyConnectionString = "Data Source = localhost;Database = Northwind;uid=sa;pwd=top-each123;Integrated Security=SSPI";
700              SqlParameter MySqlParameter = new SqlParameter();
701              MyConnection = new SqlConnection(MyConnectionString);
702              MyConnection.Open();
703              SqlCommand MyCommand = new SqlCommand(MySQL, MyConnection);
704              MySqlParameter.ParameterName = "@MyCountry";
705              MySqlParameter.Value = "Germany";
706              MyCommand.Parameters.Clear();
707              MyCommand.Parameters.Add(MySqlParameter);
708              DataTable MyTable = new DataTable();
709              SqlDataAdapter MyAdapter = new SqlDataAdapter(MyCommand);
710              MyAdapter.Fill(MyTable);
711              this.dataGridView1.DataSource = MyTable;
712          }
713          catch (Exception ex)
714          {
715              MessageBox.Show(ex.Message, "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
716          }
717          finally
718          {
719              if (MyConnection.State == ConnectionState.Open)
720                  MyConnection.Close();
721          }
722      }
723  
724      private void button10_Click(object sender, EventArgs e)
725      {//创建和使用无连接数据表
726          try
727          {
728              //创建数据表
729              DataColumn[] MyKey = new DataColumn[1];
730              DataTable MyTable = new DataTable("MyClassmate");
731              DataColumn MyColumn = new DataColumn();
732              MyColumn.DataType = System.Type.GetType("System.Int32");
733              MyColumn.ColumnName = "ID";
734              MyTable.Columns.Add(MyColumn);
735              MyKey[0] = MyColumn;
736              MyTable.PrimaryKey = MyKey;
737              MyTable.Columns.Add("Name", typeof(String));
738              MyTable.Columns.Add("Tel", typeof(String));
739              MyTable.Columns.Add("MP", typeof(String));
740              MyTable.Columns.Add("Company", typeof(String));
741              //在数据表中添加记录一
742              DataRow MyRow = MyTable.NewRow();
743              MyRow["ID"] = 87121;
744              MyRow["Name"] = "罗斌";
745              MyRow["Tel"] = "023-40231026";
746              MyRow["MP"] = "13036371686";
747              MyRow["Company"] = "无锡宝特软件有限公司";
748              MyTable.Rows.Add(MyRow);
749              //在数据表中添加记录二
750              MyRow = MyTable.NewRow();
751              MyRow["ID"] = "87123";
752              MyRow["Name"] = "蒋兰坤";
753              MyRow["Tel"] = "023-68015059";
754              MyRow["MP"] = "13062308583";
755              MyRow["Company"] = "重庆百货大楼股份有限公司";
756              MyTable.Rows.Add(MyRow);
757              //在数据表中添加记录三
758              MyRow = MyTable.NewRow();
759              MyRow["ID"] = 87124;
760              MyRow["Name"] = "王彬";
761              MyRow["Tel"] = "023-40513307";
762              MyRow["MP"] = "13883070418";
763              MyRow["Company"] = "重庆日报印刷厂";
764              MyTable.Rows.Add(MyRow);
765              this.dataGridView1.DataSource = MyTable;
766          }
767          catch (Exception ex)
768          {
769              MessageBox.Show(ex.Message, "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
770          }
771      }


转 http://www.cnblogs.com/xiaofengfeng/archive/2013/02/01/2889354.html
原文地址:https://www.cnblogs.com/wenjie0904/p/7726332.html