解决ADO.NET SQLDataAdapter数据库删除修改和插入问题
创始人
2024-06-10 16:20:34
0

经过长时间学习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. ///  
  36. /// 数据修改  
  37. /// 
  38.  
  39. private void button1_Click(object sender, EventArgs e)  
  40. {  
  41. try  
  42. {  
  43. //将更改的数据更新到数据表里  
  44. myada.Update(myset.Tables["student"].GetChanges());  
  45. MessageBox.Show("数据库修改成功","成功信息");  
  46. //DataTable接受更改,以便为下一次更改作准备  
  47. myset.Tables["student"].AcceptChanges();  
  48. }  
  49. catch (SqlException ex)  
  50. {  
  51. MessageBox.Show(ex.ToString());  
  52. }  
  53. }  
  54. ///  
  55. /// 初始化数据  
  56. /// 
  57.  
  58. private void Form9_Load(object sender, EventArgs e)  
  59. {  
  60. try  
  61. {  
  62. myada.Fill(myset, "student");  
  63. }  
  64. catch (SqlException ex)  
  65. {  
  66. MessageBox.Show(ex.ToString());  
  67. }  
  68. finally  
  69. {  
  70. mycon.Close();  
  71. }  
  72. dataGridView1.DataSource = myset.Tables["student"].DefaultView;  
  73. }  
  74. ///  
  75. /// 数据删除  
  76. /// 
  77.  
  78. private void button2_Click(object sender, EventArgs e)  
  79. {  
  80. if (MessageBox.Show("确定要删除当前行数据?", "", MessageBoxButtons.OKCancel) == DialogResult.OK)  
  81. {  
  82. try  
  83. {  
  84. //从DataTable中删除当前选中的行  
  85. myset.Tables[0].Rows[dataGridView1.CurrentRow.Index].Delete();  
  86. //将更改的数据更新到数据表里  
  87. myada.Update(myset.Tables[0].GetChanges());  
  88. MessageBox.Show("数据删除成功!");  
  89. //DataTable接受更改,以便为下一次更改作准备  
  90. myset.Tables[0].AcceptChanges();  
  91. }  
  92. catch (SqlException ex)  
  93. {  
  94. MessageBox.Show(ex.ToString());  
  95. }  
  96. }  
  97. else  
  98. {  
  99. //取消对DataTable的更改  
  100. myset.Tables[0].RejectChanges();  
  101. }  
  102. }  

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...