2016-05-24 53 views
-2

我在訪問數據庫的Windows應用程序的工作。我使用OleDbTransaction和其他類插入記錄。 當我運行我的代碼我收到錯誤消息:人物在SQL語句的末尾找到 - Access數據庫

人物在SQL語句的結束

我在一個事務中插入10條記錄。它不允許我在單個事務中插入同一個表的多個插入語句。是否有任何缺點,在訪問我們不能使用同一個表的多個插入語句?

下面是我的代碼塊:

strQueries是具有由分號seprated INSERT語句的集合詞典(;)

oleDbTran = accessDbConnection.BeginTransaction(); 
cmdReturnValue.Transaction = oleDbTran; 
foreach (var query in strQueries) 
{ 
    cmdReturnValue.CommandText = query.Value.ToString(); 
    cmdReturnValue.ExecuteNonQuery(); 
} 

oleDbTran.Commit(); 
+1

你,如果你想讓我們幫助 – Hill

+0

如果我沒有記錯,訪問限制您在每次調用一個語句真的應該張貼您的SQL語句。爲了測試這個,你可以嘗試直接運行幾個INSERT(即使用MS Access)到Access數據庫中。 – GinjaNinja

+0

爲什麼不將10行插入到一個插入語句中的同一個表中? 'INSERT INTO TABLE(...)VALUES(...),(...),(...)' – juharr

回答

0

INSERT INTO TABLE(...)VALUES( ...),(...),(...)

這是不是接受的訪問(Jet)中的SQL語法。這是什麼,MySQL?無論如何。如果你需要這個語法,因爲您已連接您的前端(訪問應用程序)到後端使用的是支持這種語法ODBC(包含數據庫數據),則可以考慮使用pass-through queries。訪問不會試圖解釋這些;相反,它會將其按原樣發送到後端。