2011-01-28 66 views
2

我將數據從MySQL數據庫表加載到DataSetASP.net C# - 將來自MySQL的數據集合併到SQL Server 2008表中

例子:

MySqlConnection myConnection = new MySqlConnection(/*connection string*/); 
MySqlCommand collectDataCommand = new MySqlCommand(/*Select comman*/, myConnection); 

MySqlDataAdapter myDataAdapter = new MySqlDataAdapter(collectDataCommand); 
myConnection.Open(); 

DataSet tempData = new DataSet(); 
myDataAdapter.Fill(tempData); 

現在,我有一個DataSet這個信息,我需要MERGE(或UPSERT)這個信息到匹配的表在的SQL Server 2008數據庫

這樣做最有效的方法是什麼?這甚至有可能嗎?

很多謝謝!

回答

0

最有效的方式做到這一點是使用Table-Valued Parameters (TVP),SQL Server支持2008

這是很容易實現既對SQL Server side以及C#的客戶端(參數將是SqlDbType.Structured) 。基本上,步驟是:

  • 在數據庫中定義一個新的「表型」
  • 添加參數在存儲過程中,有剛剛定義
  • 類型添加相應的參數在客戶端C#代碼

下面是相關的MSDN文章的摘錄:

「表值參數提供了一種簡單的方法來從一個客戶端應用程序元帥多行數據而不需要多次往返或特殊的服務器端邏輯來處理數據。您可以使用表值參數將數據行封裝在客戶端應用程序中,並通過單個參數化命令將數據發送到服務器。傳入的數據行存儲在表變量中,然後可以使用Transact-SQL對其進行操作。 「

」可以使用標準的Transact-SQL SELECT語句訪問表值參數中的列值。表值參數是強類型的,並且它們的結構會自動驗證。表值參數的大小僅受服務器內存「。

相關問題