解决ADO.NET SQLDataAdapter数据库删除修改和插入问题

经过长时间学习ADO.NET,于是和大家分享一下关于ADO.NET SQLDataAdapter完成对数据库的删除修改和插入的案例分析,看完本文你肯定可以全面理解ADO.NET的强大之处,大家赶快来看看吧!

#T#本实验目标是要求编写一个应用程序,利用ADO.NET SQLDataAdapter对象实现可以添加、修改、删除学生基本信息的功能。数据库为school,共有六个表,该应用程序中只使用了表student。数据表student中可以先存放一部分数据,便于后面处理。数据库环境是SQL Server 2005。用鼠标双击各个Button控件,进入.cs文件编辑状态准备进行开发。代码ADO.NET SQLDataAdapter动态程序部分如下:

 
 
  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.ComponentModel;  
  4. using System.Data;  
  5. using System.Data.SqlClient;  
  6. using System.Drawing;  
  7. using System.Text;  
  8. using System.Windows.Forms;  
  9.    
  10. namespace WindowsApplication1  
  11. {  
  12. public partial class Form9 : Form  
  13. {  
  14. private SqlConnection mycon;  
  15. private SqlDataAdapter myada;  
  16. private SqlCommand mycomd;  
  17. private SqlCommandBuilder mycbd;  
  18. private DataSet myset;  
  19. public Form9()  
  20. {  
  21. InitializeComponent();  
  22. mycon = new SqlConnection("Data Source=LKJ\\SQLEXPRESS;Initial Catalog=school;Integrated Security=True");  
  23. mycomd = new SqlCommand("select * from student",mycon);  
  24. myada = new SqlDataAdapter();  
  25. myada.SelectCommand = mycomd;  
  26. mycbd = new SqlCommandBuilder(myada);  
  27. myset = new DataSet();  
  28. myada.TableMappings.Add("student","student");  
  29. myada.TableMappings[0].ColumnMappings.Add("SNO", "学号");  
  30. myada.TableMappings[0].ColumnMappings.Add("SNAME", "姓名");  
  31. myada.TableMappings[0].ColumnMappings.Add("SEX", "性别");  
  32. myada.TableMappings[0].ColumnMappings.Add("BIRTHDAY", "生日");  
  33. myada.TableMappings[0].ColumnMappings.Add("CLASS", "班级");  
  34. }  
  35. /// <summary> 
  36. /// 数据修改  
  37. /// </summary> 
  38. private void button1_Click(object sender, EventArgs e)  
  39. {  
  40. try  
  41. {  
  42. //将更改的数据更新到数据表里  
  43. myada.Update(myset.Tables["student"].GetChanges());  
  44. MessageBox.Show("数据库修改成功","成功信息");  
  45. //DataTable接受更改,以便为下一次更改作准备  
  46. myset.Tables["student"].AcceptChanges();  
  47. }  
  48. catch (SqlException ex)  
  49. {  
  50. MessageBox.Show(ex.ToString());  
  51. }  
  52. }  
  53. /// <summary> 
  54. /// 初始化数据  
  55. /// </summary> 
  56. private void Form9_Load(object sender, EventArgs e)  
  57. {  
  58. try  
  59. {  
  60. myada.Fill(myset, "student");  
  61. }  
  62. catch (SqlException ex)  
  63. {  
  64. MessageBox.Show(ex.ToString());  
  65. }  
  66. finally  
  67. {  
  68. mycon.Close();  
  69. }  
  70. dataGridView1.DataSource = myset.Tables["student"].DefaultView;  
  71. }  
  72. /// <summary> 
  73. /// 数据删除  
  74. /// </summary> 
  75. private void button2_Click(object sender, EventArgs e)  
  76. {  
  77. if (MessageBox.Show("确定要删除当前行数据?", "", MessageBoxButtons.OKCancel) == DialogResult.OK)  
  78. {  
  79. try  
  80. {  
  81. //从DataTable中删除当前选中的行  
  82. myset.Tables[0].Rows[dataGridView1.CurrentRow.Index].Delete();  
  83. //将更改的数据更新到数据表里  
  84. myada.Update(myset.Tables[0].GetChanges());  
  85. MessageBox.Show("数据删除成功!");  
  86. //DataTable接受更改,以便为下一次更改作准备  
  87. myset.Tables[0].AcceptChanges();  
  88. }  
  89. catch (SqlException ex)  
  90. {  
  91. MessageBox.Show(ex.ToString());  
  92. }  
  93. }  
  94. else  
  95. {  
  96. //取消对DataTable的更改  
  97. myset.Tables[0].RejectChanges();  
  98. }  
  99. }  
THE END