| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 781 人关注过本帖
标题:在某某处没有任何行???
只看楼主 加入收藏
guming
Rank: 4
等 级:业余侠客
威 望:5
帖 子:329
专家分:277
注 册:2006-11-9
结帖率:50%
收藏
 问题点数:0 回复次数:3 
在某某处没有任何行???

下面的代码,我是先从数据源中读取数据,再填充到DataSet对象中,然后,将DataSet对象中的值赋给所定义的变量,但,运行时总提示出错:在某某处没有任何行。在数据库中是有记录的。。。。到底是怎么回事?请指教了。。。谢谢!!!
private void dt_ItemCommand(Object Sender,DataListCommandEventArgs e)
{
switch(Convert.ToString(((Button)e.CommandSource).CommandName))
{
case"BACK":Response.Redirect("outhut.aspx");break;
case"BUY":
{
datacon(); //链接数据源
OleDbDataAdapter thisADPT=new OleDbDataAdapter("Select bookid,name,price from out where id="+i,thisCN); // i 是定义的全局变量。即是其它页面传来的id。。。
DataSet ds=new DataSet();
thisADPT.Fill(ds,"out");
bid=ds.Tables["out"].Rows[i]["bookid"].ToString(); //编译时在此提示出错:在i处没有任何行。
p=ds.Tables["out"].Rows[i]["price"].ToString();
bname=ds.Tables["out"].Rows[i]["name"].ToString();
//下面的语句应该不出错。。
uid=Session.SessionID.ToString();
OleDbCommand THISCOMD=thisCN.CreateCommand();
THISCOMD.CommandText="Select bookid from contenttb where userid="+uid+"";
OleDbDataReader thisReader=THISCOMD.ExecuteReader();
if(thisReader.Read())
{thisReader.Close();
THISCOMD.CommandText="Update contenttb set count=count+1 where userid="+uid+"";
THISCOMD.ExecuteNonQuery();
}
else
{thisReader.Close();
datacon();
THISCOMD.CommandText="Insert into contenttb([bookname],[bookprice],[bookid],[userid])values('"+bname+"','"+p+"','"+bid+"','"+uid+"')";
THISCOMD.ExecuteNonQuery();
}
};break;
}
}

搜索更多相关主题的帖子: 数据库 quot 数据源 case 变量 
2006-11-30 21:48
bygg
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:乖乖的心中
等 级:版主
威 望:241
帖 子:13555
专家分:3076
注 册:2006-10-23
收藏
得分:0 
ds.Tables["out"].Rows.Count
你看一下这个值是不是大于0??

[此贴子已经被作者于2006-11-30 22:14:35编辑过]


飘过~~
2006-11-30 22:14
wyg4859
Rank: 2
等 级:新手上路
威 望:4
帖 子:883
专家分:0
注 册:2006-8-2
收藏
得分:0 
我认为是你查询的只是一条记录,即你的DataSet中填充的表中只有一条记录,而你的i如果等于2呢,那么你就是要查询第2行的记录了,而它只有一行而已,当然没有你所说的行了

http://www.找到组织!找到党!
2006-12-01 09:31
小天狼星
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:483
专家分:0
注 册:2006-11-1
收藏
得分:0 
private void dt_ItemCommand(Object Sender,DataListCommandEventArgs e)
{
switch(Convert.ToString(((Button)e.CommandSource).CommandName))
{
case"BACK":Response.Redirect("outhut.aspx");break;
case"BUY":
{
datacon(); //链接数据源
OleDbDataAdapter thisADPT=new OleDbDataAdapter("Select bookid,name,price from out where id="+i,thisCN); // i 是定义的全局变量。即是其它页面传来的id。。。
DataSet ds=new DataSet();
thisADPT.Fill(ds,"out");
if(ds.Tables["out"].Rows.Count > 0)
{
bid=ds.Tables["out"].Rows[i]["bookid"].ToString(); //编译时在此提示出错:在i处没有任何行。
p=ds.Tables["out"].Rows[i]["price"].ToString();
bname=ds.Tables["out"].Rows[i]["name"].ToString(); //下面的语句应该不出错。。
}
uid=Session.SessionID.ToString();
OleDbCommand THISCOMD=thisCN.CreateCommand();
THISCOMD.CommandText="Select bookid from contenttb where userid="+uid+"";
OleDbDataReader thisReader=THISCOMD.ExecuteReader();
if(thisReader.Read())
{thisReader.Close();
THISCOMD.CommandText="Update contenttb set count=count+1 where userid="+uid+"";
THISCOMD.ExecuteNonQuery();
}
else
{thisReader.Close();
datacon();
THISCOMD.CommandText="Insert into contenttb([bookname],[bookprice],[bookid],[userid])values('"+bname+"','"+p+"','"+bid+"','"+uid+"')";
THISCOMD.ExecuteNonQuery();
}
};break;
}
}

[face=仿宋_GB2312]一生那么长,长不过时间定义下的永远;一生那么短,短不过人海中一次又一次匆忙的擦肩。[/face]
2006-12-01 09:39
快速回复:在某某处没有任何行???
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.073586 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved