使用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();
试试这个:
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();
但是我也建议您通过一个参数来设置每个字段的值。这是一个更好的做法,以确保没有注射