C#连接数据库之Connection、Command、DataReader用法总结

举报
小小张自由--张有博 发表于 2021/11/23 23:32:58 2021/11/23
【摘要】 目录 Connection连接字符串 创建并使用连接对象 数据连接的两个方法是Open()和Colse()。 Command对象与DataReader对象 构造函数: 常用属性: 常用方法: 大多数应用程序都需要和数据库交互。同其他.NET开发语言一样,在C#语言中对数据库的访问是通过.NET框架中的ADO.NET来实...

目录

Connection连接字符串

创建并使用连接对象

数据连接的两个方法是Open()和Colse()。

Command对象与DataReader对象

构造函数:

常用属性:

常用方法:


大多数应用程序都需要和数据库交互。同其他.NET开发语言一样,在C#语言中对数据库的访问是通过.NET框架中的ADO.NET来实现的。

ADO是一个COM组件库,主要包括Connection、Command、Recordset对象等。他所实现的功能包括,打开与数据库的连接,把一下数据选出来,放在记录集中,这些数据由字段组成,接着处理这些数据,并在服务器上进行更新,然后关闭连接。

Connection对象表示与与一个数据源的物理连接。Connection对象的方法比较简单:打开和关闭连接,改变数据库和管理事务。

Command对象表示在数据源上执行一条SQL语句或者存储过程。对于一个Connection对象来说,可以独立地创建和执行不同的Command对象。

DataReader是一种快速、低开销的对象,用于从数据源中获取仅转发的、只读的数据流,往往用来显示查询的结果。DataReader不能用代码直接创建,只能通过Command对象的ExecuteReader()方法来创建。


Connection连接字符串

Connection对象最重要的属性是连接字符串ConnectionString,也是Connection对象唯一的非只读属性。


  
  1. //创建数据库连接字符串
  2. public static string ConnString = @"Server =ZYB; Database =Login; User ID = sa;Password =123456";

创建并使用连接对象

Connection对象的构造函数有两个版本,有参与无参。


  
  1. //using表示释放资源,有参
  2. using (SqlConnection conn = new SqlConnection(ConnString))
  3. //无参
  4. using (SqlConnection conn = new SqlConnection())

数据连接的两个方法是Open()和Colse()。


  
  1. conn.Open();
  2. conn.Close();

Command对象与DataReader对象

Command对象与DataReader对象是操作数据库数据的最直接的办法。Command对象根据程序员设置的SQL语句对数据库进行操作。返回需要返回结构及的SQL语句,Command对象的ExecuteReader方法生成一个DataReader对象,后者提供一个只读的游标,使程序员获取数据。

构造函数:

1.Command() ==>创建一个默认数据命令实例

2.Command(CommandText) ==>创建一个数据命令实例,CommandText属性为参数

3.Command(CommandText,conn) ==>创建一个数据命令实例,CommandText属性为参数,conn中指定连接的数据连接对象

4.Command(CommandText,conn,trans) ==>创建一个数据命令实例,CommandText属性为参数,conn中指定连接的数据连接对象,Transaction属性为参数trans中指定的事务对象

常用属性:

1.CommandText属性 ==>获取或设置对数据库执行的SQL语句

2.Connection属性 ==>获取或设置此Command对象使用的Connection对象的名称


常用方法:

1.ExecuteNonQuery() ==>返回 影响的记录行数(int类型)

2.ExecuteReader() ==>返回 DataReader(数据集对象),可以用fill()方法填充到dataset中来使用

3.ExecuteScalar() ==>返回 sql语句中第一行,第一列的值(object类型)

DataReader对象不能直接实例化、必须通过Command对象的ExecuteReader方法生成。

以下为实例


  
  1. public Login.Model.UserInfo SelectUser(string userName, string password)
  2. {
  3. //实例化SqlConnection对象,实现数据库连接
  4. using (SqlConnection conn = new SqlConnection(DbUtil.ConnString)) //没有分号,释放资源
  5. {
  6. //实例化SqlCommadn对象,执行SQL命令(对数据库执行操作)
  7. SqlCommand cmd = conn.CreateCommand();
  8. //连接数据库中的User表(连接数据库的代码容易出错)
  9. cmd.CommandText = @"SELECT ID,UserName,Password,Email
  10. FROM USERS WHERE UserName=@Username AND Password=@Password";
  11. cmd.CommandType = CommandType.Text;
  12. //给命令对象添加参数,将userName的值传给@UserName
  13. cmd.Parameters.Add(new SqlParameter("@UserName",userName));
  14. cmd.Parameters.Add(new SqlParameter("@Password",password));
  15. //打开数据库连接,添加后解决conn关闭异常
  16. conn.Open();
  17. //若要创建 SqlDataReader,必须调用 SqlCommand 对象的 ExecuteReader 方法,而不要直接使用构造函数。
  18. SqlDataReader reader = cmd.ExecuteReader();
  19. //使用实体类传递信息,初始值为null
  20. Login.Model.UserInfo user = null;
  21. while (reader.Read())
  22. {
  23. //判断有查询结果时
  24. if (user==null)
  25. {
  26. user = new Login.Model.UserInfo();
  27. }
  28. //赋值
  29. user.ID = reader.GetInt32(0);
  30. user.UserName = reader.GetString(1);
  31. user.Password = reader.GetString(2);
  32. if (!reader.IsDBNull(3))
  33. {
  34. user.Email = reader.GetString(3);
  35. }
  36. }
  37. return user;
  38. }
  39. }

博文至此,关于ADO.NET的知识就介绍完了,有不足的地方欢迎评论区留言。如果本篇博客对您有一定的帮助,大家记得留言+点赞哦。

文章来源: blog.csdn.net,作者:小小张自由—>张有博,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/promsing/article/details/107973777

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。