今天再写C#程序与数据库进行交互的时候遇到不能读取数据的问题。具体情况如下:
string sqlStr = "SELECT * FROM " + account + " WHERE Number = '" + n.ToString() + "';";
SqlCommand comm = new SqlCommand(sqlStr, conn);
SqlDataReader commReader = comm.ExecuteReader();
queryLabel[i].Text = commReader[5].ToString();
运行时候显示:
我百思不得其解,明明数据库中有数据,而且连接数据和执行成功sql命令都没有什么问题。突然间我查到执行comm.ExecuteReader()获得的SqlDataReader对象是空的,通过Read方法判断数据是否还有下一行,如果存在数据则继续读取下一行并返回true,否则返回false。所以说在使用SqlDataReader对象读数据之前先调用Read函数:
string sqlStr = "SELECT * FROM " + account + " WHERE Number = '" + n.ToString() + "';";
SqlCommand comm = new SqlCommand(sqlStr, conn);
SqlDataReader commReader = comm.ExecuteReader();
if (commReader.Read())
{
queryLabel[i].Text = commReader[5].ToString();
}