SelectCommand.连接未初始化

本文关键字:初始化 连接 SelectCommand | 更新日期: 2023-09-27 18:10:33

我试图访问我的数据库,从这个方法在我的DataBaseOptions类。我使用这个与ASP。. NET用于web开发。

每当我运行这个方法,在另一个类中,我得到以下错误:

SelectCommand。连接未初始化

它说错误在第40行。下面是我的代码:

(带有"adapter.Fill(dt);"的行是第40行。

private string connectionString = "oop_string"; // Global Variable
private static SqlConnection mycon = new SqlConnection(); // Global Variable
private static SqlCommand mycmd = new SqlCommand(); // Global Variable
public void setupConnection() {
    mycon.ConnectionString = ConfigurationManager.ConnectionStrings[connectionString].ToString();
    mycmd.Connection = mycon;
}
public bool UserExists(string username, string password) {
    setupConnection();
    mycmd.CommandText = "SELECT user_id FROM users WHERE user_username = @username AND user_password = @password";
    mycmd.Parameters.Add("@username", SqlDbType.VarChar).Value = username;
    mycmd.Parameters.Add("@password", SqlDbType.VarChar).Value = password;
    DataTable dt = new DataTable();
    SqlDataAdapter adapter = new SqlDataAdapter(mycmd);
    adapter.Fill(dt);
    if(dt.Rows.Count == 0) {
        return false;
    } else {
        return true;
    }
}
public int getUserID(string username, string password) {
        setupConnection();
        mycmd.CommandText = "SELECT user_id FROM users WHERE user_username = @username AND user_password = @password";
        mycmd.Parameters.Add("@username", SqlDbType.VarChar).Value = username;
        mycmd.Parameters.Add("@password", SqlDbType.VarChar).Value = password;
        SqlDataReader reader = mycmd.ExecuteReader();
        if(reader.Read()) {
            return Convert.ToInt32(reader["user_id"]);
        }
        mycon.Close();
        return 0;
}

如果我尝试从setupConnection();到UserExists()的开始;和getUserID ();我得到以下错误:

ConnectionString属性未初始化。

,它现在声称错误在第51行。"SqlDataReader reader = mycmd.ExecuteReader();"

我的老师和我,已经尝试了一切,谷歌,其他同学,老师。

SelectCommand.连接未初始化

您的代码中没有打开连接。还要考虑在using语句

中关闭命令和那些实现IDisposable的对象。

在执行查询时必须给出连接对象

内容如下:

    DataTable dt = new DataTable();
    SqlDataAdapter adapter = new SqlDataAdapter(mycmd,mycon);

您没有打开连接

    public void setupConnection() {
    mycon.ConnectionString = ConfigurationManager.ConnectionStrings[connectionString].ToString();
    mycon.Open()
    mycmd.Connection = mycon;
}