MySqlDataReader dataReader=cmd.ExecuteReader()弹出窗口Form而不进入wh
本文关键字:Form 窗口 wh dataReader cmd ExecuteReader MySqlDataReader | 更新日期: 2023-09-27 17:59:55
我的连接工作正常。然而,当它运行到MysqlDataREader dataReader行时,它会显示Window Form,并且不会访问while循环来获取我的数据。我正在使用dataGridView来显示我的数据库中的信息。我做错了什么?感谢
if (this.OpenConnection() == true)
{
//Create Command
MySqlCommand cmd = new MySqlCommand(query, connection);
//Create a data reader and Execute the command
MySqlDataReader dataReader= cmd.ExecuteReader();
//Read the data and store them in the list
while (dataReader.Read())
{
list[0].Add(dataReader["id"] + "");
list[1].Add(dataReader["name"] + "");
list[2].Add(dataReader["weekday"] + "");
list[3].Add(dataReader["description"] + "");
}
//close Data Reader
dataReader.Close();
//close Connection
this.CloseConnection();
}
命令是什么?
函数的作用是将读取器前进到下一条记录。如果没有返回任何记录,则If将立即为false。
因此,该命令很可能不会返回任何内容。你想做这样的事情(HandleRecord只是为了让代码更干净):
if(reader.Read())
{
// Handle first record
HandleRecord(dataReader)
while(reader.Read())
{
// Handle remaining records
HandleRecord(dataReader)
}
}
else
{
// Nothing was returned, do something
}
您还希望处理异常。从提供的代码来看,似乎没有try-catch finally语句。如果我没记错的话,应该是这样的:
try
{
// Contact database - read/write/whatever
}
catch
{
// Display exception to user, log, whatever you need
}
finally
{
// Close database connection and other cleanup
}