2011-01-28 55 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语句访问表值参数中的列值。表值参数是强类型的,并且它们的结构会自动验证。表值参数的大小仅受服务器内存“。

相关问题