第三十二讲:ADO.NET技术(四、SqlDataAdapter类与DataSet类)
课程安排:
SqlDataAdapter类
DataSet类
通过Fill方法,填充DataSet
将DataSet与GridView绑定
SqlDataAdapter类
SqlDataAdapter类是内存与数据库之间的桥梁。
创建SqlDataAdapter类的对象
SqlDataAdapter sda = new SqlDataAdapter(cmd); //构造函数有一个参数,是SqlCommand对象。
SqlDataAdapter sda = new SqlDataAdapter(sql,cn); //sql是一条select语句。cn是连接对象。
DataSet类
DataSet是ADO.NET中的核心对象。所有复杂级别的操作都使用它。
DataSet包含一组DataTable对象,它们表示被操作的数据库表。
DataTable由DataRow组成。
创建一个DataSet类的对象
DataSet ds = new DataSet();
//获取第一个表中,第2行,第2列的数据。
Response.Write(ds.Tables[0].Rows[1][1]);
通过Fill方法,填充DataSet
//使用SqlDataAdapter类的Fill方法,填充到DataSet对象实例中。
sda.Fill(ds,"aaa");
打印aaa表中的所有人名。
foreach(Datarow theRow in ds.Tables["aaa".Rows] { Response.Write(theRow["Name"] + "<br/>"); }
完整代码:
using (SqlConnection cn = new SqlConnection()) { cn.ConnectionString = ConfigurationManager.ConnectionStrings["TestCN"].ConnectionString; cn.Open(); using (SqlCommand cmd = cn.CreateCommand()) { cmd.CommandText = "SELECT * FROM Taa"; cmd.CommandType = System.Data.CommandType.Text; using (SqlDataAdapter sda = new SqlDataAdapter(cmd)) { using (DataSet ds = new DataSet()) { sda.Fill(ds, "abc"); foreach (DataRow dr in ds.Tables["abc"].Rows) //ds.Tables[0].Rows也可以 { Response.Write(dr["name"] + "<br/>"); } } } } }
将DataSet与GridView绑定
GridView1.DataSource = ds.Tables[0];
GridView1.DataBind();
考虑到代码重用性,可手动编写SqlHelper类,实现代码重用。