ADO.NET
ADO.NET是.NET中一组用于和数据源进行交互的面向对象类库,提供了数据访问的高层接口。
ADO.NET类库在System.Data命名空间内,根据我们访问的不同数据库选择命名空间,System.Data.SqlClient。
ADO.NET类最重要的优点是支持数据库以断开连接的方式工作。
ADO.NET主要通过两个核心组件来完成对数据库的操作,分别是DataSet和.NET数据库提供程序。数据集,在命令空间:System.Data下。
前者是ADO.NET断开式结构的核心组件,后者是专门为直接访问数据库,对其进行快速的只进,只读访问数据等数据处理而设计的组件。
ADO.NET常用对象:
Connection 连接数据库的通道
Command 命令执行对象
DataReader 数据读取器(只读只进)
DataAdapter 数据适配器
DateSet 数据在内存中的表现形式,临时数据库,断开式操作。
SqlConnection conn = new SqlConnection(); //创建Connection连接数据库对象
conn.ConnectionString = "data sourse=.;initalial catalog=MySchool;integrated security=true;" //连接字符串
SqlCommand cmd = new SqlCommand(); //创建Command命令执行对象
cmd.CommandText = "SELECT * FROM dbo.Student"; //SQL语句
cmd.Connection = conn; //绑定连接
cmd.CommandType = CommandType.Text; //它告诉.net接下来执行的是一个文本(text)、存储过程(StoredProcedure)还是表名称(TableDirect).
//传参sql语句
cmd.CommandText = "SELECT * FROM dbo.Student where UesrID=@ID"; //SQL语句
SqlParameter para=new SqlParameter("@ID",SqlDbType.int,4); //生成一个名为@Id的参数,必须以@开头表示是添加的参数,并设置其类型长度,类型,长度。与数据库中对应字段相同
para.Value=Id; //给参数赋值
cmd.Parameters.Add(para); //必须把参数变量添加到命令对象中去。
conn.Open(); //打开连接
int i = Covert.ToInt32(cmd.Executescalar()) //返回结果集中第一行的第一列,一般用于返回单个结果(一行一列)的时候使用,值有可能返回null。
int i = Covert.ToInt32(cmd.ExecuteNonQuery()) //返回受影响的行数,一般用于 增删改 语句。执行其他语句默认返回-1。
SqlDataReader reader= cmd.ExecuteReader(); //执行命令,返回DataReader对象
if(reader.HasRows) //判断是否有结果返回
while (reader.Read()) //循环读取
{
//do something
}
conn.Close(); //关闭连接
reader.Close(); //关闭reader
SqlDataAdapter sda = new SqlDataAdapter(sql语句,conn) //创建对象
DataSet ds = new Dataset()
sda.fill(ds."表名")
SqlParameter para=new SqlParameter("@Id",SqlDbType.int,4); //生成一个名字为@Id的参数,必须以@开头表示是添加的参数,并设置其类型长度,类型长度与数据库中对应字段相同
para.Value=Id; //给参数赋值
cmd.Parameters.Add(para); //把参数变量添加到命令对象中去。
一次添加多个参数
SqlParameter[] para=new SqlParameter[] {new SqlParameter("@Id",SqlDbType.int,4){value = xxx},new SqlParameter("@Id",SqlDbType.int,4){value = xxx}};
cmd.Parameters.AddRange(para);