关于sqldatareader 不知道lz想干吗呢?如果读取数据可以直接用DataAdapter 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 sqldatareader是占用一个连接的,如果在sqldatareader没有关闭的时候用和它相关联的SqlConnection去执行其它的操作就不可以了,因为被它给独占了,所以如果你有这样的类似操作的时候,可以采用变通的方式,比如用SqlDataAdapter取出数据放到DataTable中然后对这个DataTable进行循环操作,或者用SqlDataReader读出数据放到一个临时的List中然后对这个List进行循环操作,总之在SqlDataReader关闭之前是不能使用其它的和它的SqlConnection关联的操作的. sqldatareader以独占方式使用数据库连接。dataset或者再建一个链接 三楼讲的很细致了 使用DataAdapter 参考 string sqlstr = "select * from table1"; SqlDataAdapter da = new SqlDataAdapter(sqlstr, conn); ds = new DataSet(); da.Fill(ds, "TEST");if(ds.tables[0].rows.count !=0){ for(int i=0;i<ds.tables[0].rows.count;i++){ //todo}} DataSet如何获取每个数据呢?for(int i=0;i<ds.tables[0].rows.count;i++){ //todo} for(int i=0;i<ds.tables[0].rows.count;i++){ object objValue = ds.Tables[0].Rows[i]["Name"];} Reader的效率高,如果这样可以将数据Reader到一个Collection中就可以了 用DataAdapter填充DataSet上面的已经介绍很清楚了! ADO.net 1.1确实不行,你只能用DataSet,像楼上各位说的如果是ADO.net 2.0,你可以设置你的连接字符串,有个MultipleActiveResultSets设置为true就可以了 Form的键盘事件失效 如何初始化所有派生类 求教一个新手问题.. 如何在Dataset中导航 谁做过电子政务数据库的设计? 如何用c#中的wpf编写手机软件? 如何过滤重复记录? c++中的结构体中存在字符数组,修改成C#中的结构体,怎么定义? datagrid数据不能更新 比较简单的问题: C# MsChart的TwipsToChartPart的问题 一个发邮件的程序 总出错!
dataset或者再建一个链接
string sqlstr = "select * from table1";
SqlDataAdapter da = new SqlDataAdapter(sqlstr, conn);
ds = new DataSet();
da.Fill(ds, "TEST");
if(ds.tables[0].rows.count !=0)
{
for(int i=0;i<ds.tables[0].rows.count;i++)
{
//todo
}
}
for(int i=0;i<ds.tables[0].rows.count;i++)
{
//todo
}
{
object objValue = ds.Tables[0].Rows[i]["Name"];
}
填充DataSet
上面的已经介绍很清楚了!