C# sqldatareader错误
我想检查sqldatareader是否为null。因此尝试了以下代码:C# sqldatareader错误,c#,sql-server,sqldatareader,C#,Sql Server,Sqldatareader,我想检查sqldatareader是否为null。因此尝试了以下代码: 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; } 但是,在尝试检查datareade
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;
}
但是,在尝试检查datareader中的值时,它会抛出一个错误,“在没有数据时读取数据的尝试无效”。否则我应该如何检查数据是否存在。!!请帮忙。这里是一个sqldatareader
SqlDataReader x=cmd.ExecuteReader();
cmd是一个select COMMAND.您可以使用
SqlDataReader.HasRows
-如果至少存在一行数据,则为真,或者您可以使用SqlDataReader.read()读取所有结果
以你为例:
while(x.Read())
{
//read stuff
}
您可以使用SqlDataReader.HasRows
-如果至少有一行数据存在,则为真,或者您可以使用SqlDataReader.read()
读取所有结果
以你为例:
while(x.Read())
{
//read stuff
}
在访问DataRows之前,可以执行空检查并具有行
像这样
if(null != x && x.HasRows)
{
//Your code
}
在访问DataRows之前,可以执行空检查并具有行
像这样
if(null != x && x.HasRows)
{
//Your code
}
但它仍然显示出同样的错误!!虽然满足了if条件,但它无法执行line box.Text=Convert.ToString(x[k++]);x的fieldcount显示为6,但为什么它不能读取x[k]?即使当k=0时。尝试快速查看x[k]的值。是否可以查看存储在datareader中的值?我的意思是,我不认为有办法窥视x[0]或x[1]中的值……是的,使用快速观察功能可以做到这一点。但它仍然显示相同的错误!!虽然满足了if条件,但它无法执行line box.Text=Convert.ToString(x[k++]);x的fieldcount显示为6,但为什么它不能读取x[k]?即使当k=0时。尝试快速查看x[k]的值。是否可以查看存储在datareader中的值?我的意思是,我不认为有办法窥视x[0]或x[1]中的值……是的,使用快速观察功能可以做到这一点。