Reader 关闭时读取无效 - MySqlDataReader C#
Invalid attempt to read when Reader is closed - MySqlDataReader C#
尝试从 DataReader 读取数据时,我的 duplicateNameCheck
方法出现 Invalid attempt to read when Reader is closed
异常。我不确定为什么。非常感谢任何帮助!
public static MySqlConnection GetSqlConnection() {
MySqlConnection connection = new MySqlConnection(connectionString);
return connection;
}
public static MySqlDataReader ExecuteReader(string sqlQuery, MySqlConnection connection) {
using (MySqlCommand command = new MySqlCommand(sqlQuery, connection)) {
try {
connection.Open();
MySqlDataReader sqlReader = command.ExecuteReader();
return sqlReader;
} catch (Exception ex) {
MessageBox.Show(ex.Message);
return null;
}
}
}
public static bool duplicateNameCheck(string inName) {
String sqlQuery = "SELECT * FROM Account";
using (MySqlDataReader sqlReader = SQLHelper.ExecuteReader(sqlQuery, SQLHelper.GetSqlConnection())) {
while (sqlReader.Read())
{
if (inName.Equals(sqlReader[1].ToString(), StringComparison.InvariantCultureIgnoreCase))
{
return true;
}
}
}
return false;
}
您在尝试使用它生成的 SqlReader 之前处理 SqlCommand。在您完成 reader.
之前,它们都需要保持打开状态
尝试从 DataReader 读取数据时,我的 duplicateNameCheck
方法出现 Invalid attempt to read when Reader is closed
异常。我不确定为什么。非常感谢任何帮助!
public static MySqlConnection GetSqlConnection() {
MySqlConnection connection = new MySqlConnection(connectionString);
return connection;
}
public static MySqlDataReader ExecuteReader(string sqlQuery, MySqlConnection connection) {
using (MySqlCommand command = new MySqlCommand(sqlQuery, connection)) {
try {
connection.Open();
MySqlDataReader sqlReader = command.ExecuteReader();
return sqlReader;
} catch (Exception ex) {
MessageBox.Show(ex.Message);
return null;
}
}
}
public static bool duplicateNameCheck(string inName) {
String sqlQuery = "SELECT * FROM Account";
using (MySqlDataReader sqlReader = SQLHelper.ExecuteReader(sqlQuery, SQLHelper.GetSqlConnection())) {
while (sqlReader.Read())
{
if (inName.Equals(sqlReader[1].ToString(), StringComparison.InvariantCultureIgnoreCase))
{
return true;
}
}
}
return false;
}
您在尝试使用它生成的 SqlReader 之前处理 SqlCommand。在您完成 reader.
之前,它们都需要保持打开状态