2012-09-11 40 views
0

你好朋友我怎樣才能從數據集執行批量插入MDB。 到現在我已經做了這樣的事情是否可以在MSAccess中執行批量插入

string InsertBulkQry = "INSERT INTO Table1 SELECT * FROM table IN "  

    +MYDs.Tables[0]; 

我使用C#和VS 2005

或有任何其他的方式來更新女士訪問表和多個記錄更快 感謝所有

回答

2

是的,這是可能的。更多信息:INSERT INTO Statement (Microsoft Access SQL)

var cmdText = "INSERT INTO Table1 SELECT * FROM Table2"; 
var command = new OleDbCommand(cmdText, connection); 
command.ExecuteNonQuery(); 

未測試,它應該工作。或者您可以在Access中創建查詢並從C#代碼執行它。

+0

如果你可以幫助我的任何例子它會很好 – Rohit

+0

**插入語句中的錯誤**是我得到 – Rohit

+0

@Rohit你有一個table1嗎?如果沒有,你需要選擇,否則上面的SQL爲我工作。 – Fionnuala

-1

這裏是解釋的MS Access INSERT SQL Command

+1

嗯,事實上我糊塗了更換預定聲明說,這裏** INSERT INTO目標[(字段1 [,字段2 [,...]])] [IN externaldatabase]中選擇[源。] field1 [,field2 [,...] FROM tableexpression **但是我無法將我的值與此給定的epression關聯。 – Rohit

+0

提供與上一個答案相同的鏈接,除非沒有摘要! (和3分鐘後。) –

+0

直到現在我的查詢是**字符串InsertBulkQry =「INSERT INTO Table1 [(Field1,[Field2,[Field3,[Field4]]])]選擇[Field1],[Field2],[Field3] ,來自「+ MyDs.Tables [0]的[Field4]; **但沒有運氣。我哪裏出錯了? – Rohit

0

這應該工作:

using System.Runtime.InteropServices; 
using Access = Microsoft.Office.Interop.Access; 

namespace ConsoleApplication2 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      var access = new Access.Application(); 
      access.OpenCurrentDatabase(@"C:\whatever.mdb"); 
      access.DoCmd.RunSQL("INSERT INTO Table1 SELECT * FROM Table2"); 
      access.CloseCurrentDatabase(); 

      Marshal.ReleaseComObject(access); 
     } 
    } 
} 
+2

我不會使用RunSQL,它會產生警告並關閉警告不是一個好主意。此外,如果SQL不能用於連接,我不明白爲什麼它可以在MS Access的實例中工作。 – Fionnuala

+0

@Remou我沒有這麼想,但我同意,Anuraj的方式更好! – JMK

相關問題