C# 这个错误什么意思?

来源:百度知道 编辑:UC知道 时间:2024/06/03 09:44:12
未处理InvalidOperationException
在没有任何数据时进行无效的读取尝试。
-------下面这是一部分代码:
string sql2 = string .Format ("select LoginPwd,NickName,Sex,Age,StarId,BloodTypeId,Name,FaceId,FriendshipPolicyId from Users where Id='{0}'",textBox4 .Text );
SqlCommand comm2 = new SqlCommand(sql2, DBHelper.connection);
DBHelper.connection.Open();
SqlDataReader data2=comm2.ExecuteReader();
data2.Read();
string pw = (string)data2["LoginPwd"]; //密码
string nice = (string )data2 ["NickName"]; //昵称
.....下面是其他的声明变量 接收读取的内容。

data2.Read();
出错的应该是这句,错误原因是SqlDataReader data2=comm2.ExecuteReader(); 没有返回符合条件的数据。解决的办法是在data2.Read(); 时判断是否可以读取到数据,如果无法读取(没有数据)的话就不要进行数据操作

if (data2.Read())
{
string pw = (string)data2["LoginPwd"]; //密码
string nice = (string )data2 ["NickName"]; //昵称
}

是你引用了某个已释放的资源,比如说已关闭的连接之类的。
// 把你的代码改成这样试试:

panel1.Visible = false;
string sql = "select * from [stu1]";
OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data source=student.mdb");
OleDbDataAdapter ad = new OleDbDataAdapter(sql, conn);
DataTable dt = new DataTable();
ad.Fill(dt);
dataGrid1.DataSource = d1;

string sql2 = string .Format ("select LoginPwd,NickName,Sex,Age,StarId,BloodTypeId,Name,FaceId,FriendshipPolicyId from Users where Id='{0}'",textBox4 .Text );
SqlCommand command= new SqlCommand(sql2, DBHelper.connection);
DBHelper.