对ADO.NET访问数据库的一个小总结
一.ADO.NET主要包括
- Connection:数据库连接对象,它的功能是创建与指定数据源的连接,并完成初始化的工作。
- Command:数据库命令对象,用于在数据源上执行的sql语句或存储过程。
- DataReader:数据阅读器对象,通过Command对象调用ExecuteReader()来创建DataReader对象,以一种只读的,只能向前移动的游标访问数据库,工作的过程需要一直保持与数据库的连接,每次只在内存中保留一行,开销非常小。
- DataAdapter:数据适配器,该对象是一个双向通道,用来把数据从数据源中读到一个内存表中或把内存表中的数据写回到一个数据源中
- DataTable:是内存中的一个关系数据库表
-
Dataset:数据集,表示整个数据集,其中包括表,约束,以及表与表之间的关系
二.使用方法
1 .Connection对象(创建与指定的数据源的连接)这里给出的是用Windows账户进行身份验证,若是用sql server身份验证,要加上User ID=" “,Password=” ",把Integrated Security=False.
SqlConnection conn = new SqlConnection();
conn.ConnectionString = "Data Source=DESKTOP-D16EG4G;Initial Catalog=HISDB;Integrated Security=True";
以sql server 数据库为例
引入命名空间:
调用connection对象的open方法或者close方法,可以打开数据库和关闭数据库,数据库联机资源是有限的,因此在需要的时候打开连接,且一旦使用完毕,尽早关闭连接
2.Command对象
使用Command对象对数据源执行查询,添加,删除和修改各种操作,操作的实现方式可以使用sql 语句,也可以使用存储过程
. CommandType 获取或设置Command对象执行命令的类型
. CommandText 获取或设置对数据源执行的SQL语句或存储过程或表名
. CommandTimeout 获取或设置在终止对执行命令的尝试并发生错误之前的等待时间
SqlConnection conn = new SqlConnection();
conn.ConnectionString = "Data Source=DESKTOP-D16EG4G;Initial Catalog=HISDB;Integrated Security=True";
string sqr="select * from Doctor where dID='"+txtkey.Text+"'";
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;//连接对象
cmd.CommandText = sqr;//查询字符串
Command对象常用方法及说明如下:
ExecuteNonQuery():用于执行sql语句并返回受影响的行数,用于执行不返回任何行的执行命令
ExecuteScalar():返回一个标量值,例如需要返回COUNT(),等聚合函数的结果
3.DataReader对象
该对象是包含了一行或多行数据记录的结果集,使用DataReader对象提供的方法可以实现对结果集中数据的检索数据
使用ExecuteReader()方法创建DataReader对象:
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = sqr;
SqlDataReader dr = cmd.ExecuteReader();
DataReader常用的属性及方法:
HasRows属性:该属性用来获取DataReader对象中是否包含任何行
Read()方法:使用该方法可将Reader指向当前记录,并将记录指针移到下一行,从而可以使用列名或列的次序来访问列的值,如果已经到了数据表的最后,则返回一个布尔值false.
dr.Read();//调用Read()方法得到返回记录集
string level;
if(dr.HasRows)//如果有返回记录存在
{
level=dr["ulevel"].ToString();//获取返回记录中的ulevel字段值
}
else//dr中不包含任何记录,数据库中没有符合条件的记录
{
lblmsg.Text="用户名或密码错误";
return;
}
4.DataAdapter对象
在物理数据表和内存数据表之间起着桥梁作用
创建SqlDataAdapter对象的语法格式
SqlConnection conn = new SqlConnection();
conn.ConnectionString = "Data Source=DESKTOP-D16EG4G;Initial Catalog=HISDB;Integrated Security=True";
SqlDataAdapter da = new SqlDataAdapter();
string sqr="select * from Doctor where dID='"+txtkey.Text+"'";//查询字符串
da.SelectCommand = new SqlCommand(sqr, conn);
DataAdapter对象的常用方法
Fill()方法:用从数据源读取的数据行填充DataTable 或DataSet 对象
Dispose():删除DataAdapter对象,释放占用的系统资源
DataSet ds=new DataSet();
da.Fill(ds);
5.DataTable对象
一个DataTable对象被创建后,通常需要调用DataAdapter的Fill()方法对其进行填充,使得DataTable对象获得具体的数据集,不再是一个空表对象
在实际应用中使用DataTable对象一般经过一下几个步骤
. 创建数据库连接
. 创建Select查询或Command对象
. 创建DataAdapter对象
. 创建DataTable对象
. 调用DataAdapter对象中的Fill()方法填充DataTable对象
注意:使用DataTable对象需要引用System.Data命名空间
DataTable对象的常用属性:
Columns属性:用于获取DataTable对象中表的列集合
Rows属性:用于获取DataTable对象中表的行集合
6.DataSet对象
DataSet内部是一个或多个DataTable的集合
DataSet ds = new DataSet();
da.Fill(ds);