数据集超出范围异常
本文关键字:异常 范围 数据集 | 更新日期: 2023-09-27 18:04:47
希望这是一个简单的
我正在从数据集的一列中提取数据。由于SQL查询提供了一个ID,因此只会返回一个结果。所以我认为这个结果总是在数据集的第0行。
如果我单击数据网格中的第一个结果........将id '0'发送到我的第二个页面,然后从它崩溃的DB中提取图像名称。如果我选择网格中的第二个结果,即'1',则可以。
下面是我的代码: SqlConnection sqlcon = new SqlConnection(connstring);
SqlCommand sqlcmd = new SqlCommand("select pic from cds WHERE _id = '" + passedID + "'", sqlcon);
SqlDataAdapter adp = new SqlDataAdapter(sqlcmd);
DataSet ds = new DataSet();
adp.Fill(ds);
// Rows set to '0' for the first result in the dataset but crashes if the first item is selected.
object a = ds.Tables[0].Rows[0]["pic"];
string test = a.ToString();
添加检查以确保查询至少检索了一行
if(ds.Tables[0].Rows.Count > 0)
{
object a = ds.Tables[0].Rows[0]["pic"];
string test = a.ToString();
}
else
{
Response.Write("No rows for the ID = " + passedID);
}
数据集没有行。数据集中包含的数据表具有Rows属性,但是如果查询失败(没有找到具有请求ID的行),则Rows集合具有零元素,并且您无法访问索引零。(超出范围)
我猜问题是您传递了错误的id,或者在cds
表中没有传递id的数据。
当您尝试访问Rows[0]
时,您会得到一个错误,因为没有数据,所以集合中没有行