用SqlDataReader保存是sql语句执行的结果,如何得到查询出的总记录数?谢谢! SqlDataReader.FieldCount是列数,我要的是行数 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 private int GetDataReaderCount(SqlDataReader dr){int i=0;while(dr.Read()) i+=1;return i;} 查询出总记录数的目的是想用得到的记录数作为数组的大小,如果指定数组的大小,就通过,但是用了楼上的方法,出了个奇怪的错,帮忙看看吧:(已经注释在程序中),谢谢!非常头痛!错误信息是:“未处理的“System.Exception”类型的异常出现在 Banding.exe 中附加信息:数据库操作发生错误!没有该用户!”public class DBMgr //操作数据库的类{ MyItem[] aMyItems; //MyItem是自定义的类 MyItem item; private int GetDataReaderCount(SqlDataReader dr) { int i=0; while(dr.Read()) i+=1; return i; } public MyItem[] SelectFromDB(string selectStr) { SqlConnection myconn=ConnSql.SetConn(); myconn.Open(); try { SqlCommand mycmd = new SqlCommand(selectStr,myconn); sqlDataReader mysqlreader = mycmd.ExecuteReader(); int k = GetDataReaderCount(mysqlreader); //计算总记录数 if(mysqlreader.Read()) { int i=0; aMyItems=new MyItem[k]; //用总记录数作为数组的大小 //如果指定数组大小就没问题 aMyItems=new MyItem[100]; int count=0; while(mysqlreader.Read()) { item=new MyItem(); item.ID=(int)mysqlreader["ID"]; item.Name=mysqlreader["USERNAME"].ToString(); aMyItems[i++]=item; count+=1; } } else { throw(new Exception("没有该用户!")); } } catch(Exception E) { throw(new Exception("数据库操作发生错误!"+ E.Message)); } myconn.Close(); return aMyItems;} } datagirdview 失去焦点 计算数据库里的数量问题 获得Word文档中的章节信息(大纲信息) 求一个数组的处理方法 控制台多线程和窗体多线程的区别? C#程序启动时,连接到指定的服务器判断是否更新 xml修改文档文件问题? 如何判断一个远程文件是否可用? 如何在控制台程序下将数据提交到指定页面 那里有会计凭证的控件的问题?? 给一个VS。NET正式版的序列号 c#编桌面应用程序如何?
{
int i=0;
while(dr.Read())
i+=1;return i;
}
附加信息:数据库操作发生错误!没有该用户!”
public class DBMgr //操作数据库的类
{
MyItem[] aMyItems; //MyItem是自定义的类
MyItem item; private int GetDataReaderCount(SqlDataReader dr)
{
int i=0;
while(dr.Read())
i+=1;
return i;
}
public MyItem[] SelectFromDB(string selectStr)
{
SqlConnection myconn=ConnSql.SetConn();
myconn.Open();
try
{
SqlCommand mycmd = new SqlCommand(selectStr,myconn);
sqlDataReader mysqlreader = mycmd.ExecuteReader();
int k = GetDataReaderCount(mysqlreader); //计算总记录数
if(mysqlreader.Read())
{
int i=0;
aMyItems=new MyItem[k]; //用总记录数作为数组的大小
//如果指定数组大小就没问题 aMyItems=new MyItem[100];
int count=0;
while(mysqlreader.Read())
{
item=new MyItem();
item.ID=(int)mysqlreader["ID"]; item.Name=mysqlreader["USERNAME"].ToString();
aMyItems[i++]=item;
count+=1;
}
}
else
{
throw(new Exception("没有该用户!"));
}
}
catch(Exception E)
{
throw(new Exception("数据库操作发生错误!"+ E.Message));
}
myconn.Close();
return aMyItems;
}
}