private void button1_Click(object sender, EventArgs e)
{
string name;
name = textBox5.Text;
SqlConnection con10 = new SqlConnection("con strn");
SqlCommand cmd10 = new SqlCommand("select * from sumant where username=@name");
cmd10.Parameters.AddWithValue("@name",name);
cmd10.Connection = con10;
cmd10.Connection.Open();//line 7
SqlDataReader dr = cmd10.ExecuteReader();
}
if ( textBox2.Text == dr[2].ToString())
{
//do something;
}
Run Code Online (Sandbox Code Playgroud)
当我调试到第7行时,没关系,但之后dr会抛出异常:
Invalid attempt to read when no data is present.
这是不可能的,因为我在表中有user = sumant的数据.请告诉我"if"声明是否正确.........
我该如何删除错误?
Jul*_*lin 162
你必须打电话DataReader.Read来获取结果:
SqlDataReader dr = cmd10.ExecuteReader();
if (dr.Read())
{
// read data for first record here
}
Run Code Online (Sandbox Code Playgroud)
DataReader.Read()返回bool指示是否有更多数据块要读取,因此如果结果超过1,则可以执行以下操作:
while (dr.Read())
{
// read data for each record here
}
Run Code Online (Sandbox Code Playgroud)
小智 8
我会检查SqlDataReader是否先返回行:
SqlDataReader dr = cmd10.ExecuteReader();
if (dr.HasRows)
{
...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
107888 次 |
| 最近记录: |