关闭

打造自己的数据访问层一

发表于:2011-7-27 10:33

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:flysoul    来源:51Testing软件测试网采编

  项目开发中,大多数开发人员的核心工作就是如何对数据进行存储及访问。为了进行数据操作,我们首先得解决几个基本问题:

  1、如何与一个数据库建立连接。

  2、如何从数据库读取相应的数据。

  3、如何对数据表进行增改操作。

  .NET中,ADO.NET很方便的解决了上面三个问题,我们可以使用DbConnection进行连接,DataSet进行数据存储,DataAdapter进行数据更新。先看一段代码:

  1. //创建DbConnection对象连接数据库
  2. SqlConnection conn = new SqlConnection();
  3. conn.ConnectionString = "server=.;uid=sa;password=123456; database=DATA_BASE; max pool size=300;";
  4. //创建DataAdapter、Command对象,读取数据
  5. SqlDataAdapter da = new SqlDataAdapter();
  6. SqlCommand cmd = new SqlCommand();
  7. cmd.Connection = conn;
  8. cmd.CommandText = "SELECT * FROM TEST";
  9. da.SelectCommand = cmd;
  10. //创建DataSet对象,存储数据,建立与物理表的映射
  11. DataSet ds = new DataSet();
  12. da.Fill(ds, "TEST");

  上述代码实现对数据库“DATA_BASE”中“TEST”表数据读取,并用DataSet时行存储。

  既然读出了TEST表中的数据,接下来要解决的就是如何对TEST表进行增、删、改操作。

  为实现增、删、改操作,需要为DataAdapter指定InsertCommand、DeleteCommand以及UpdateCommand,并为每个Command对象绑定参数:

  1. //新增数据  
  2. cmd = new SqlCommand();  
  3. cmd.Connection = conn;  
  4. cmd.CommandText = "INSERT INTO TEST (ID, NAME, VAL) VALUES (@ID, @NAME, @VAL)";  
  5. SqlParameter param = new SqlParameter("@ID"null);  
  6. param.SourceColumn = "ID";  
  7. cmd.Parameters.Add(param);  
  8. param = new SqlParameter("@NAME"null);  
  9. param.SourceColumn = "NAME";  
  10. cmd.Parameters.Add(param);  
  11. param = new SqlParameter("@VAL"null);  
  12. param.SourceColumn = "VAL";  
  13. cmd.Parameters.Add(param);  
  14. da.InsertCommand = cmd;  
  15. //修改数据  
  16. cmd = new SqlCommand();  
  17. cmd.Connection = conn;  
  18. cmd.CommandText = "UPDATE TEST SET NAME = @NAME, VAL = @VAL WHERE ID = @ID";  
  19. param = new SqlParameter("@ID"null);  
  20. param.SourceColumn = "ID";  
  21. cmd.Parameters.Add(param);  
  22. param = new SqlParameter("@NAME"null);  
  23. param.SourceColumn = "NAME";  
  24. cmd.Parameters.Add(param);  
  25. param = new SqlParameter("@VAL"null);  
  26. param.SourceColumn = "VAL";  
  27. cmd.Parameters.Add(param);  
  28. da.UpdateCommand = cmd;  
  29. //删除数据  
  30. cmd = new SqlCommand();  
  31. cmd.Connection = conn;cmd.CommandText = "DELETE FROM TEST WHERE ID = @ID";  
  32. param = new SqlParameter("@ID"null);  
  33. param.SourceColumn = "ID";  
  34. cmd.Parameters.Add(param);  
  35. da.DeleteCommand = cmd;

21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号