我使用SqlDataREeader的时候显示“在没有任何数据时进行无效的读取尝试。”为什么呢?我把数据贴出来给大家看看!
public static SqlDataReader returnDr(string select)
{
SqlConnection con = DB.CreateConnet();
con.Open();
SqlCommand cmd = new SqlCommand(select, con);
SqlDataReader dr = null;
try
{
dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
}
catch (SqlException e)
{
throw new Exception(e.Message, e);
}
return dr;
} string selComputerId = "select computerId from olc_computer where computerName='" + computerName + "'";
SqlDataReader dr = DB.returnDr(selComputerId);
if (dr.HasRows == true)
{
computerId = (string)dr["computerId"];//“在没有任何数据时进行无效的读取尝试。”但是,我在数据库里面明就是查询了一行数据!有谁能讲讲呢?谢谢!
}
public static SqlDataReader returnDr(string select)
{
SqlConnection con = DB.CreateConnet();
con.Open();
SqlCommand cmd = new SqlCommand(select, con);
SqlDataReader dr = null;
try
{
dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
}
catch (SqlException e)
{
throw new Exception(e.Message, e);
}
return dr;
} string selComputerId = "select computerId from olc_computer where computerName='" + computerName + "'";
SqlDataReader dr = DB.returnDr(selComputerId);
if (dr.HasRows == true)
{
computerId = (string)dr["computerId"];//“在没有任何数据时进行无效的读取尝试。”但是,我在数据库里面明就是查询了一行数据!有谁能讲讲呢?谢谢!
}
或者
if(dr.read())也就是要read()一次
最好不要用if(dr.read()),因为会造成第一行数据丢失,具体原因我也不太清楚!好像是因为在读SqlDataReader之前就已经读过第一行数了!你可以找找错误看看!HOHO~