我使用以下代码将记录从一个数据库插入另一个数据库,但它不起作用。我尝试了MS-ACCESS 2007中的查询,它工作正常,但是当我从C#代码以编程方式调用时它不起作用?
string query_insert = "INSERT INTO Questionnaires_Table(BranchName,Factor,Region,Branch_ID,Current_Date,No_Employees) "
+ "SELECT BranchName,Factor,Region,Branch_ID,Current_Date,No_Employees "
+ "FROM Questionnaires_Table IN '" + dialog.FileName + "' Where Branch_ID = " + textBox1.Text ;
dbConnDest.Open();
OleDbDataAdapter dAdapter = new OleDbDataAdapter();
OleDbCommand cmd_insert = new OleDbCommand(query_insert, dbConnDest);
dAdapter.InsertCommand = cmd_insert;
textBox2.Text = query_insert.ToString();
dbConnDest.Close();
当我在ms访问中获取query_insert
的内容时,它可以正常工作。
答案 0 :(得分:3)
我认为你需要使用
cmd_insert.executeNonQuery()
答案 1 :(得分:1)
删除SELECT
列表中最后一个字段名称后面的逗号。
"SELECT BranchName,Factor,Region,Branch_ID,Current_Date,No_Employees"
答案 2 :(得分:0)
dAdapter.Update(); 应该做的伎俩
答案 3 :(得分:0)
这似乎是可疑的:
" Where Branch_ID = " + textBox1.Text ;
textBox1
是否包含数字ID?输入的ID是否存在于源数据库中?
我会1)检查ID是否存在,如果不存在则警告用户,2)更改查询以使用参数而不是连接SQL。
如果贵公司开设ID为
的分行,会发生什么情况"1; DROP TABLE Branches"