使用Oledb连接更新MS Access数据库

本文关键字:Access 数据库 MS 更新 Oledb 连接 使用 | 更新日期: 2023-09-27 18:10:53

当我试图使用OleDbConnection更新MS Access数据库(.mdb文件)时,我得到了这个错误:

Microsoft JET Database Engine

在System.Data.OleDb.OleDbCommand

。ExecuteCommandTextErrorHandling (OleDbHResult hr)
在System.Data.OleDb.OleDbCommand。ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object&executeResult)
在System.Data.OleDb.OleDbCommand.ExecuteCommandText (Object&executeResult)
在System.Data.OleDb.OleDbCommand。执行命令(CommandBehavior行为,对象&executeResult)
在System.Data.OleDb.OleDbCommand。ExecuteReaderInternal(CommandBehavior行为,字符串方法)
在System.Data.OleDb.OleDbCommand.ExecuteNonQuery ()
在CostEstimate.Form1。processdbBtn_Click(Object sender, EventArgs e) in c:' users ' sys ' visual Studio 2008'Projects'demo'demo' form .cs:line 137

第137行指的是下面代码

中的command.ExecuteNonQuery();

请找到下面的代码并帮助我解决问题

  OleDbConnection conn = new OleDbConnection();
  conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" + @"data source=C:'Users'sy'Visual Studio 2008'Projects'demo'demo'CE_Database.mdb;";
  conn.Open();
  OleDbCommand command = new OleDbCommand();
  string[][] allData = [[1,'a'],[2,'b'],[3,'c']]
  foreach (string[] individualData in allData)
  {
    command.CommandText = @"insert into CETable(JobCode,JobName) Values(individualData[0],individualData[1])";
    command.Connection = conn;
    command.ExecuteNonQuery();
  }
  conn.Close();

使用Oledb连接更新MS Access数据库

试试这个:

OleDbConnection conn = new OleDbConnection();
conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" + @"data source=C:'Users'sy'Visual Studio 2008'Projects'demo'demo'CE_Database.mdb;";
conn.Open();
string[][] allData = [[1,'a'],[2,'b'],[3,'c']]
foreach (string[] individualData in allData)
{
    OleDbCommand command = new OleDbCommand()
    {
        Connection = conn,
        CommandText = string.Format(@"insert into CETable(JobCode,JobName) Values({0}, {1});", individualData[0], individualData[1])";
    };
    command.ExecuteNonQuery();
}
conn.Close();

但是我也建议您通过一个参数来设置每个字段的值。这是一个更好的做法,以确保没有注射