C# 到Access数据库的OleDb连接
我一直在尝试写入数据库并保存到文件,但我无法让它工作,也不知道为什么 我得到的错误是:C# 到Access数据库的OleDb连接,c#,database,ms-access,connection-string,C#,Database,Ms Access,Connection String,我一直在尝试写入数据库并保存到文件,但我无法让它工作,也不知道为什么 我得到的错误是: Exception thrown: 'System.Data.OleDb.OleDbException' in System.Data.dll 其他信息: Could not find installable ISAM. 这是我正在运行的代码,任何帮助/建议都将不胜感激 private void BtnSubmit_Click(object sender, EventArgs e) {
Exception thrown: 'System.Data.OleDb.OleDbException' in System.Data.dll
其他信息:
Could not find installable ISAM.
这是我正在运行的代码,任何帮助/建议都将不胜感激
private void BtnSubmit_Click(object sender, EventArgs e)
{
OleDbConnection Conn = new OleDbConnection();
Conn.ConnectionString = @"Provider = Microsoft.ACE.OLEDB.12.0; Data Source =| DataDirectory |\\HoliPlanData.accdb; Trusted_Connection = True;";
String PayrollNo = TxtPayroll.Text;
String FirstName = TxtFirstName.Text;
String LastName = TxtLastName.Text;
String AnnualHolidayEntitlemet = TxtAHE.Text;
String DaysTakenToDate = TxtDTTD.Text;
OleDbCommand Query = new OleDbCommand("INSERT INTO Employee (PayrollNo, FirstName, LastName, AnnualHolidayEntitlement, DaysTakenToDate) Values(@PayrollNo, @FirstName, @LastName, @AnnualHolidayEntitlement, @DaysTakenToDate");
Query.Connection = Conn;
Conn.Open(); //THIS IS WHERE THE ERROR OCCURS IN CODEPROSSESS
if (Conn.State == ConnectionState.Open)
{
Query.Parameters.Add("@PayrollNo", OleDbType.VarChar).Value = PayrollNo;
Query.Parameters.Add("@FirstName", OleDbType.VarChar).Value = FirstName;
Query.Parameters.Add("@LastName", OleDbType.VarChar).Value = LastName;
Query.Parameters.Add("@AnnualHolidayEntitlement", OleDbType.VarChar).Value = AnnualHolidayEntitlemet;
Query.Parameters.Add("@DaysTakenToDate", OleDbType.VarChar).Value = DaysTakenToDate;
try
{
Query.ExecuteNonQuery();
MessageBox.Show("Data Added Successfully");
Conn.Close();
}
catch (OleDbException ex)
{
MessageBox.Show(ex.Message);
Conn.Close();
}
}
else
{
MessageBox.Show("Connection Failed");
}
}
请安装并重试
更改连接字符串,如下所示
Conn.ConnectionString=@“Provider=Microsoft.ACE.OLEDB.12.0;DataSource=|DataDirectory\\\HoliPlanData.accdb;Trusted_Connection=True;”代码>安装并重试
更改连接字符串,如下所示
Conn.ConnectionString=@“Provider=Microsoft.ACE.OLEDB.12.0;DataSource=|DataDirectory\\\HoliPlanData.accdb;Trusted_Connection=True;”代码>两个问题:
正如您在上面的评论中指出的,您的连接字符串有一个额外的分号
插入查询缺少最后一个括号)
比较以下几行:
OleDbCommand Query = new OleDbCommand("INSERT INTO Employee (PayrollNo, FirstName, LastName, AnnualHolidayEntitlement, DaysTakenToDate) Values(@PayrollNo, @FirstName, @LastName, @AnnualHolidayEntitlement, @DaysTakenToDate");
OleDbCommand Query = new OleDbCommand("INSERT INTO Employee (PayrollNo, FirstName, LastName, AnnualHolidayEntitlement, DaysTakenToDate) Values(@PayrollNo, @FirstName, @LastName, @AnnualHolidayEntitlement, @DaysTakenToDate)");
两个问题:
正如您在上面的评论中指出的,您的连接字符串有一个额外的分号
插入查询缺少最后一个括号)
比较以下几行:
OleDbCommand Query = new OleDbCommand("INSERT INTO Employee (PayrollNo, FirstName, LastName, AnnualHolidayEntitlement, DaysTakenToDate) Values(@PayrollNo, @FirstName, @LastName, @AnnualHolidayEntitlement, @DaysTakenToDate");
OleDbCommand Query = new OleDbCommand("INSERT INTO Employee (PayrollNo, FirstName, LastName, AnnualHolidayEntitlement, DaysTakenToDate) Values(@PayrollNo, @FirstName, @LastName, @AnnualHolidayEntitlement, @DaysTakenToDate)");
尝试了以上两种方法,仍然得到相同的错误。有人知道这个问题吗?尝试了以上两种方法,仍然得到相同的错误。有人知道这个问题吗?乔,你这个聪明人。非常感谢你。祝你有一个美好的一天!!乔,你这个聪明人。非常感谢你。祝你有一个美好的一天!!