黑马程序员__ADO.Net
什么是ADO.NET?
ADO.NET就是一组类库,这组类库可以让我们通过程序的方式访问数据库,就像system.IO下的类用类操作文件一样,system.Data这组类是用来操作数据库(不光是MSSql Server),他提供了统一的编程接口让操作其他数据库(access和oracle)。
数据提供程序
- Connection
- Command
- DataReader只读只进的结果集
- DataAdapter
Connection:负责连接数据库,找到数据库,进行身份验证,与数据库建立起一个传数据的通道。
Commend:负责操纵数据库,向数据库发送sql让数据执行。
DataReader:负责快速只进的读取数据库。一行一行的读取数据。
DataAdapter:适配器,可以吧数据库中的一个select结果集的数据一下子取出来放到dataset中。
注意:上面的四个类不是我们用到的具体类。
举例:如果访问sqlserver数据库,SqlConnection、SqlCommend....
如果是oracle数据库,OracleConnection、OracleCommend....
数据集(类 DataSet)
dataset我们可以理解为放在内存中的数据库
Tables 是存储多个表的属性
using System.Data.Sqlclient //访问mssqlsercer数据库命名空间
操作数据库三步走:
第一步,连接数据库
第二步,发送命令操作数据库并接受操作是否成功的状态
第三步,断开数据库
连接数据库的对象:连接数据库的步骤
sqlConnection:
第一步:
SqlConnection conn = new SqlConnection(连接字符串);
第二步:
调用open方法连接到数据库
第三步:
调用 conn.close();断开与数据库的连接
操作数据库:
第一步:
SqlCommand cmd=new SqlCommand(sql,conn); //sql是数据库语句
cmd.Connection属性:设置连接对象。sql语句是对cmd.Connection属性赋值
cmd.CommandText属性:要执行的sql语句。conn是对cmd.CommendText属性赋值
第二步:
int i = cmd.ExecuteNonQuery(); //用于执行一个没有返回值的sql语句(insert update delete)这个方法的返回值是受影响的行数
Sqlcommand的重要方法!
第一个重要方法:cmd.ExecuteNonQuery()
上面的方法无法得到数据库中的值,要想得到数据库中的值,需要第二个第二个重要方法!
第二个重要方法:
cmd.ExecuteScalar 执行一个sql语句(一般是select语句)并且返回第一行第一列的值,由于没有办法确定第一行第一列的数据类型,所以他的返回值类型为:object
第三个重要方法:
cmd.ExecuteReader 用于得到多行多列的一个数据库,他一般执行一个select SQL语句,结果集可以是多行多列。
SqlDataReader dr = cmd.ExecuteReader();
cmd.ExecuteReader方法返回了一个SqlDataReader的对象,这个返回值适用于操作我们sql语句得到的结果集的!
执行完sql得到一个结果集,这个结果集存储在数据库上,还没取回到我们的程序中。
要想去回到程序中,要调用dr.Read()方法!
没调用一次Read方法,dr都会去数据库上的结果集中取下一条记录,如果能取到下一条记录,则返回值为true,否则为false
SqlDataReader是一个持续连接对象,它在操作数据库的时候,要保持与数据库的连接,并且和这个对象相关的commend和connection不能再做其他事情。
dr.FieldCount:获得结果集中的个数
遍历结果集中的所有数据:
while (dr.Read())
{
//读取数据
string str = string .Format("姓名:{0} 年龄:{1}", dr["sName" ], dr["sAge"]);
MessageBox.Show(str);
}
在sql语句中,用参数来占位用户输入的内容:@+随便取个名字
一旦sql语句中有参数了,那么在执行的时候就要告诉commend sql语句中的参数占位符取哪些值~