我目前正在尝试将数据库中的一个整数返回到一个变量中,以便与另一个整数进行比较,但我不断收到错误,例如连接未打开。我试过将数据库连接到其他类,无效。它一直在告诉我:
System.InvalidOperationException:'ExecuteReader:连接属性尚未初始化。'
class Database
{
//connection
public SqlConnection sqlConnection = null;
public Database()
{
sqlConnection = new SqlConnection(connectionString);
sqlConnection.Open();
}
public SqlCommand CreateCommand()
{
return sqlConnection.CreateCommand();
}
public int compare()
{
SqlCommand cmd = new SqlCommand();
SqlDataReader dr = cmd.ExecuteReader();
dr.Read();
int ID = dr.GetInt32(0);
return ID;
}
public void ExecuteSql(string sql)
{
var cmd = CreateCommand();
cmd.CommandText = sql;
cmd.ExecuteNonQuery();
}
}
public partial class FmLogin : Form
{
Database database = new Database();
public FmLogin()
{
InitializeComponent();
}
private void button2_Click(object sender, EventArgs e)
{
int holder = database.compare();
if (holder > 0)
{
MessageBox.Show($"2",
"Thank you for making an account!", MessageBoxButtons.OK);
}
}
}
1条答案
按热度按时间6tdlim6h1#
您没有使用compare()方法中的CreateCommand()方法。
我建议你在Compare()方法中这样做:
我还把一个使用周围的
SqlDataReader
处理后,它不再需要。否则,您无法将该连接用于其他命令