sqldatareader错误

发布于 2024-10-30 19:13:37 字数 414 浏览 1 评论 0原文

我想检查 sqldatareader 是否为空。因此尝试了以下代码:

if (x[k]!= DBNull.Value)   
{
  box.Text = Convert.ToString(x[k++]);

  if ((box.Text) != "")
    current[j - 1] = Convert.ToDouble(box.Text);
  else current[j - 1] = 0;

  box.Enabled = false;
}

但是,在尝试检查数据读取器中的值时,它会抛出错误,“当不存在数据时,读取数据的尝试无效”。我还应该如何检查数据是否存在。!!请帮忙。这里 x 是一个 sqldatareader SqlDataReader x = cmd.ExecuteReader(); cmd 是一个选择命令..

I want to check if the sqldatareader is null or not. So tried the following code:

if (x[k]!= DBNull.Value)   
{
  box.Text = Convert.ToString(x[k++]);

  if ((box.Text) != "")
    current[j - 1] = Convert.ToDouble(box.Text);
  else current[j - 1] = 0;

  box.Enabled = false;
}

However while trying to check the value within the datareader, it throws an error,"invalid attempt to read data when no data is present". How else should i check to see if data is there or not.!! please help. here x is an sqldatareader
SqlDataReader x = cmd.ExecuteReader();
and cmd is a select commnand..

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

别理我 2024-11-06 19:13:37

您可以使用 SqlDataReader.HasRows - 如果至少存在一行数据,则为 true,或者您可以使用 SqlDataReader.Read() 读取所有结果;

所以对于你的例子:

while(x.Read())
{
  //read stuff
}

You can use SqlDataReader.HasRows - it is true if at least one row of data is present, alternatively you can read through all results using SqlDataReader.Read();

So for your example:

while(x.Read())
{
  //read stuff
}
梦魇绽荼蘼 2024-11-06 19:13:37

您可以在访问 DataRows 之前执行 null 检查和 Has Row。

像这样

if(null != x && x.HasRows)
{
//Your code
}

You can do a null check and Has Row before accessing the DataRows.

like this

if(null != x && x.HasRows)
{
//Your code
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文