C# 错误:ExecuteOnQuery:尚未初始化连接属性
请帮助我,我目前陷入了这个错误:C# 错误:ExecuteOnQuery:尚未初始化连接属性,c#,ms-access,C#,Ms Access,请帮助我,我目前陷入了这个错误: ExecuteNonQuery: Connection property has not been initialized 我读了很多相关的问题,但都不管用。我也在谷歌上搜索,希望找到答案,但遗憾的是,我没有找到答案( 这是我的密码 namespace jollibee4 { public partial class AccountRegister : Form { public AccountRegister()
ExecuteNonQuery: Connection property has not been initialized
我读了很多相关的问题,但都不管用。我也在谷歌上搜索,希望找到答案,但遗憾的是,我没有找到答案(
这是我的密码
namespace jollibee4
{
public partial class AccountRegister : Form
{
public AccountRegister()
{
InitializeComponent();
}
private void add_Click(object sender, EventArgs e)
{
try
{
OleDbConnection con = new OleDbConnection();
con.ConnectionString = @"Provider = Microsoft.ACE.OLEDB.12.0; Data Source = C:\dbms\jollibee.accdb";
con.Open();
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = con;
cmd = new OleDbCommand("insert into Employee_Details ([username],[password],[Name],[Middle_Name],[Surname],[address],[account_Type],[Mobile_Number],[BirthDate]) values (?,?,?,?,?,?,?,?,?);");
cmd.Parameters.AddWithValue("@username", username.Text);
cmd.Parameters.AddWithValue("@password", password.Text);
cmd.Parameters.AddWithValue("@Name", name.Text);
cmd.Parameters.AddWithValue("@Middle_Name", middlename.Text);
cmd.Parameters.AddWithValue("@Surname", surname.Text);
cmd.Parameters.AddWithValue("@address", address.Text);
cmd.Parameters.AddWithValue("@account_Type", accountType.Text);
cmd.Parameters.AddWithValue("@BirthDate", birthdate.Text);
cmd.Parameters.AddWithValue("@Mobile_Number", mobilenumber.Text);
cmd.ExecuteNonQuery();
con.Close();
MessageBox.Show("done");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
}
您两次创建该命令,导致第二个实例失去连接:
private void add_Click(object sender, EventArgs e)
{
try
{
OleDbConnection con = new OleDbConnection();
con.ConnectionString = @"Provider = Microsoft.ACE.OLEDB.12.0; Data Source = C:\dbms\jollibee.accdb";
con.Open();
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = con;
//THIS LINE IS THE PROBLEM
cmd = new OleDbCommand("insert into Employee_Details ([username],[password],[Name],[Middle_Name],[Surname],[address],[account_Type],[Mobile_Number],[BirthDate]) values (?,?,?,?,?,?,?,?,?);");
cmd.Parameters.AddWithValue("@username", username.Text);
cmd.Parameters.AddWithValue("@password", password.Text);
cmd.Parameters.AddWithValue("@Name", name.Text);
cmd.Parameters.AddWithValue("@Middle_Name", middlename.Text);
cmd.Parameters.AddWithValue("@Surname", surname.Text);
cmd.Parameters.AddWithValue("@address", address.Text);
cmd.Parameters.AddWithValue("@account_Type", accountType.Text);
cmd.Parameters.AddWithValue("@BirthDate", birthdate.Text);
cmd.Parameters.AddWithValue("@Mobile_Number", mobilenumber.Text);
cmd.ExecuteNonQuery();
con.Close();
MessageBox.Show("done");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
相反,它应该是:
cmd.CommandText = "insert into Employee_Details ([username],[password],[Name],[Middle_Name],[Surname],[address],[account_Type],[Mobile_Number],[BirthDate]) values (?,?,?,?,?,?,?,?,?);"
您两次创建该命令,导致第二个实例失去连接:
private void add_Click(object sender, EventArgs e)
{
try
{
OleDbConnection con = new OleDbConnection();
con.ConnectionString = @"Provider = Microsoft.ACE.OLEDB.12.0; Data Source = C:\dbms\jollibee.accdb";
con.Open();
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = con;
//THIS LINE IS THE PROBLEM
cmd = new OleDbCommand("insert into Employee_Details ([username],[password],[Name],[Middle_Name],[Surname],[address],[account_Type],[Mobile_Number],[BirthDate]) values (?,?,?,?,?,?,?,?,?);");
cmd.Parameters.AddWithValue("@username", username.Text);
cmd.Parameters.AddWithValue("@password", password.Text);
cmd.Parameters.AddWithValue("@Name", name.Text);
cmd.Parameters.AddWithValue("@Middle_Name", middlename.Text);
cmd.Parameters.AddWithValue("@Surname", surname.Text);
cmd.Parameters.AddWithValue("@address", address.Text);
cmd.Parameters.AddWithValue("@account_Type", accountType.Text);
cmd.Parameters.AddWithValue("@BirthDate", birthdate.Text);
cmd.Parameters.AddWithValue("@Mobile_Number", mobilenumber.Text);
cmd.ExecuteNonQuery();
con.Close();
MessageBox.Show("done");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
相反,它应该是:
cmd.CommandText = "insert into Employee_Details ([username],[password],[Name],[Middle_Name],[Surname],[address],[account_Type],[Mobile_Number],[BirthDate]) values (?,?,?,?,?,?,?,?,?);"
您的最后两个参数也不正常您的最后两个参数也不正常我遇到了一个新错误,即条件表达式中的数据类型不匹配我检查了我的数据库,我认为所有值都是正确的。我没有包括ID,因为它是主键和自动编号。下面是数据库表详细信息
ID=autonumber username=shorttext password=shorttext-Name=shorttext-Middle\u-Name=shorttext-Name=shorttext-address=shorttext-account\u-Type=shorttext-Mobile\u-Number=Number-BirthDate=shorttext
在我将数据库恢复到其原始设置后,数据类型不匹配问题现已得到解决。我遇到了一个新的错误,即c中的数据类型不匹配riteria表达式我检查了我的数据库,我认为所有值都是正确的。我没有包括ID,因为它是主键和自动编号。下面是数据库表的详细信息ID=autonumber username=shorttext password=shorttext Name=shorttext Middle\u Name=shorttext Name=shorttext address=shorttext account\u Type=shorttextMobile_Number=Number BirthDate=shorttext
在我将数据库恢复到其原始设置后,数据类型不匹配现在已修复。