datareader奇怪问题!急!!!!!在线等!!!
mySel = "SELECT appmaxnum FROM MaxNum";
myComm.CommandText = mySel;
myComm.Connection = myConn;
myConn.Open();
SqlDataReader dr = myComm.ExecuteReader();
if(dr.Read())
{
appID = Int32.Parse(dr["appmaxnum"].ToString());
}
会出现:异常详细信息: System.InvalidOperationException: 在没有任何数据时进行无效的读取尝试。
的错误。真的不知道为什么!肯定已经读取了两个数据的!
问题点数:0、回复次数:10Top
1 楼webdiyer(.net资源精华—www.dotneturls.com)回复于 2003-05-01 20:10:49 得分 0
你的myComm声明了吗?Top
2 楼sonkey(小恐龙)回复于 2003-05-01 20:23:36 得分 0
当然声明啦!不声明怎么通过编译啊?Top
3 楼cmsoft(韦小宝是我的老乡)(草根在路上)回复于 2003-05-01 20:28:29 得分 0
把
if(dr.Read())
{
appID = Int32.Parse(dr["appmaxnum"].ToString());
}
改为
while(dr.Read())
{
Response.Write(Int32.Parse(dr["appmaxnum"].ToString()));
}
测试一下,看看可不可以?Top
4 楼shenghuayi(oldman)回复于 2003-05-01 20:29:26 得分 0
把if modify to whileTop
5 楼sonkey(小恐龙)回复于 2003-05-01 20:41:35 得分 0
dr.Read()我跟踪的时候是为false的
{
appID = Int32.Parse(dr["appmaxnum"].ToString());
}
这一句读运行不了
我方多一个dr.Read();//有两个记录的
他就会出错的
昨晚作了个程序也用到一样的语句,昨天行,今天又变成上面的情况!
是不是bug啊?Top
6 楼wacle([Smile!])回复于 2003-05-01 20:43:10 得分 0
是不是你的字段名有问题啊,检查和数据库字段名是否吻合。至少从你的写法上看不出错误Top
7 楼kokblack(人人为我,我为人人)回复于 2003-05-01 20:47:06 得分 0
gzTop
8 楼sonkey(小恐龙)回复于 2003-05-01 21:28:32 得分 0
一定不是!我用sql生成的,我用一个变量在dr.Read()前把Int32.Parse(dr["appmaxnum"].ToString())付值那个变量,我跟总是可以付值的!但我还没有调用dr.Read()啊,应该还是指向第一个记录之前的阿!但事事实上好像是指向第一个记录,当我在调用一次dr.Read(),就不能读取了!//dr有两个记录的,应该可以的Top
9 楼sonkey(小恐龙)回复于 2003-05-02 00:30:41 得分 0
upTop
10 楼webdiyer(.net资源精华—www.dotneturls.com)回复于 2003-05-02 13:30:33 得分 0
把读取数据的记录放在
while(reader.Read()){
在此读取记录}
中试试。Top




