使用DataAdapter对象获取数据
2008-08-19 23:24
399 查看
DataAdapter类用作ado.net对象模型中已连接和未连接部分的桥梁。可以使用DataAdapter从数据库中获取数据,并将其存储在DataSet中。也可以取得缓存在DataSet中的更新,并将他们提交给数据库。DataAdapter是为脱机数据而设计的。
1、创建DataAdapter
在创建DataAdapter时,通常希望将SelectCommand属性设置为一个有效的Command对象。
string strCon, strSql;
strCon = @"provider=microsoft.jet.oledb.4.0;data source=d:\st.mdb";
strSql = "select * from 学生";
OleDbConnection con = new OleDbConnection(strCon);
OleDbCommand cmd = new OleDbCommand(strSql, con);
OleDbDataAdapter da = new OleDbDataAdapter();
da.SelectCommand = cmd;
2、DataAdapter构造函数
DataAdapter拥有3个可用于简化DataAdapter类创建过程的构造函数
【1】 string strCon, strSql;
strCon = @"provider=microsoft.jet.oledb.4.0;data source=d:\st.mdb";
strSql = "select * from 学生";
OleDbDataAdapter da = new OleDbDataAdapter(strSql,strCon);
这种方法有一个潜在的缺陷,假定正在应用程序中使用一系列的DataAdapter对象。以这种方式创建的DataAdapter对象将为每个DataAdapter创建一个新的Connection对象。可以通过使用一个查询字符串和connection对象为参数的DataAdapter构造函数来确保DataAdapter使用的都是同一个Connection对象。以下代码创建的两个DataAdapter对象使用的是同一个Connection对象。
【2】
string strCon, strSql1,strSql2;
strCon = @"provider=microsoft.jet.oledb.4.0;data source=d:\st.mdb";
strSql1 = "select * from 学生";
strSql2="select * from 教师";
OleDbConnection cn = new OleDbConnection(strCon);
OleDbDataAdapter da1 = new OleDbDataAdapter(strSql1, cn);
OleDbDataAdapter da2 = new OleDbDataAdapter(strSql2, cn);
DataAdapter 还提供一种以Command对象为参数的第三构造函数,如果已经创建了一个Command对象,并希望创建一个使用Command对象来填充DataSet的DataAdapter。可以使用如下代码。
【3】
string strCon, strSql1,strSql2;
strCon = @"provider=microsoft.jet.oledb.4.0;data source=d:\st.mdb";
strSql1 = "select * from 学生";
strSql2="select * from 教师";
OleDbConnection cn = new OleDbConnection(strCon);
OleDbCommand cmd = new OleDbCommand(strSql1, cn);
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
3、从查询中获取结果
现在已经了解了如何创建DataAdapter的几种方式,下面看下如何使用一个DataAdapter对象将查询结果存储在DataSet中。
(1)、使用Fill方法
调用fill方法会执行存储在SelectComand属性中的查询,并将结果存储在DataSet中。
string strCon, strSql1,strSql2;
strCon = @"provider=microsoft.jet.oledb.4.0;data source=d:\st.mdb";
strSql1 = "select * from 学生";
OleDbDataAdapter da = new OleDbDataAdapter(strSql1, strCon);
DataSet ds = new DataSet();
da.Fill(ds);
foreach (DataRow row in ds.Tables[0].Rows)
{
Console.Write("{0}---{1}",row["姓名"],row["性别"]);
}
(2)使用重载的fill方法
指明填充的表名,
da2.Fill(ds,"教师");
在调用fill方法时还可以制定DataTable而不是DataSet.
da2.Fill(DataTable)
如下:
string strCon, strSql1,strSql2;
strCon = @"provider=microsoft.jet.oledb.4.0;data source=d:\st.mdb";
strSql1 = "select * from 学生";
strSql2 = "select * from 教师";
OleDbDataAdapter da = new OleDbDataAdapter(strSql1, strCon);
DataTable tb1 = new DataTable();
da.Fill(tb1);
1、创建DataAdapter
在创建DataAdapter时,通常希望将SelectCommand属性设置为一个有效的Command对象。
string strCon, strSql;
strCon = @"provider=microsoft.jet.oledb.4.0;data source=d:\st.mdb";
strSql = "select * from 学生";
OleDbConnection con = new OleDbConnection(strCon);
OleDbCommand cmd = new OleDbCommand(strSql, con);
OleDbDataAdapter da = new OleDbDataAdapter();
da.SelectCommand = cmd;
2、DataAdapter构造函数
DataAdapter拥有3个可用于简化DataAdapter类创建过程的构造函数
【1】 string strCon, strSql;
strCon = @"provider=microsoft.jet.oledb.4.0;data source=d:\st.mdb";
strSql = "select * from 学生";
OleDbDataAdapter da = new OleDbDataAdapter(strSql,strCon);
这种方法有一个潜在的缺陷,假定正在应用程序中使用一系列的DataAdapter对象。以这种方式创建的DataAdapter对象将为每个DataAdapter创建一个新的Connection对象。可以通过使用一个查询字符串和connection对象为参数的DataAdapter构造函数来确保DataAdapter使用的都是同一个Connection对象。以下代码创建的两个DataAdapter对象使用的是同一个Connection对象。
【2】
string strCon, strSql1,strSql2;
strCon = @"provider=microsoft.jet.oledb.4.0;data source=d:\st.mdb";
strSql1 = "select * from 学生";
strSql2="select * from 教师";
OleDbConnection cn = new OleDbConnection(strCon);
OleDbDataAdapter da1 = new OleDbDataAdapter(strSql1, cn);
OleDbDataAdapter da2 = new OleDbDataAdapter(strSql2, cn);
DataAdapter 还提供一种以Command对象为参数的第三构造函数,如果已经创建了一个Command对象,并希望创建一个使用Command对象来填充DataSet的DataAdapter。可以使用如下代码。
【3】
string strCon, strSql1,strSql2;
strCon = @"provider=microsoft.jet.oledb.4.0;data source=d:\st.mdb";
strSql1 = "select * from 学生";
strSql2="select * from 教师";
OleDbConnection cn = new OleDbConnection(strCon);
OleDbCommand cmd = new OleDbCommand(strSql1, cn);
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
3、从查询中获取结果
现在已经了解了如何创建DataAdapter的几种方式,下面看下如何使用一个DataAdapter对象将查询结果存储在DataSet中。
(1)、使用Fill方法
调用fill方法会执行存储在SelectComand属性中的查询,并将结果存储在DataSet中。
string strCon, strSql1,strSql2;
strCon = @"provider=microsoft.jet.oledb.4.0;data source=d:\st.mdb";
strSql1 = "select * from 学生";
OleDbDataAdapter da = new OleDbDataAdapter(strSql1, strCon);
DataSet ds = new DataSet();
da.Fill(ds);
foreach (DataRow row in ds.Tables[0].Rows)
{
Console.Write("{0}---{1}",row["姓名"],row["性别"]);
}
(2)使用重载的fill方法
指明填充的表名,
da2.Fill(ds,"教师");
在调用fill方法时还可以制定DataTable而不是DataSet.
da2.Fill(DataTable)
如下:
string strCon, strSql1,strSql2;
strCon = @"provider=microsoft.jet.oledb.4.0;data source=d:\st.mdb";
strSql1 = "select * from 学生";
strSql2 = "select * from 教师";
OleDbDataAdapter da = new OleDbDataAdapter(strSql1, strCon);
DataTable tb1 = new DataTable();
da.Fill(tb1);
相关文章推荐
- 【Hibernate】中Query对象在获取表的所有的数据的时候,使用list()和 iterator()有什么区别?
- Spring JDBC-使用Spring JDBC获取本地连接对象以及操作BLOB/CLOB类型数据
- 使用java调用C语言的方法,让java获取串口数据并生成一个String对象的代码。
- 使用SqlDataAdapter对象获取数据(转自:http://www.cnblogs.com/zyh-nhy/archive/2009/01/07/1371177.html)
- J 4000 SP内置对象:使用getparametervalues()获取数据
- 使用EL内置对象获取JSP内置对象的数据
- 使用SqlDataAdapter对象获取数据
- 使用SqlDataAdapter对象获取数据
- handlebars获取json数据(集合对象中嵌套集合对象)each嵌套使用
- XML DOM getElementsByTagName+childNodes获取XML数据对象的使用
- 使用SqlDataAdapter对象获取数据
- 使用dbUtil多表查询获取的数据涉及多个对象时的封装
- 使用SqlDataAdapter对象获取数据
- android:使用网络通信技术从客户端直接获取服务端的对象数据
- 使用参数拦截器通过注解直接从JSON对象中获取数据
- 使用SqlDataAdapter对象获取数据
- 对象转换为JSON数据格式&使用JQuery获取数据
- 使用SqlDataAdapter对象获取数据 (转)
- Query对象在获取表的所有的数据的时候,使用list()和 iterator()有什么区别?
- C#使用SqlDataAdapter对象获取数据的方法