2012-09-14 58 views
-5

我在c#中创建了一个列表,现在我需要将列表插入到SQL Server 2008中。 这可能吗?请用一个简单的例子来解释。如何将C sharp中的列表插入到SQL Server 2008中?

+6

你应该看看[表值参数](http://www.codeproject.com/Articles/39161/C-and-Table-Value-Parameters)。 –

+0

Smith,如何将列表中的属性分配为参数? – Praveen

+0

以下链接可帮助您为您的问题提供解决方案。 [http://stackoverflow.com/questions/10757818/c-sharp-insert-into-sql-table-with-list-as-parameter](http://stackoverflow.com/questions/10757818/c-sharp-插入sql-table-with-list-as-parameter) – 2012-09-14 14:27:11

回答

5

这里有一个简单的例子:

List<String> list = new List<String>() { "A", "B", "C" }; 
using (var con = new SqlConnection(connectionString)) 
{ 
    con.Open(); 
    using (var cmd = new SqlCommand("INSERT INTO TABLE(Column)VALUES(@Column)", con)) 
    { 
     cmd.Parameters.Add("@Column", SqlDbType.VarChar); 
     foreach (var value in list) 
     { 
      cmd.Parameters["@Column"].Value = value; 
      int rowsAffected = cmd.ExecuteNonQuery(); 
     } 
    } 
} 

这只是通过列表中的所有项目循环并执行一个接一个插入命令与ExecuteNonQuery

编辑:如果你想知道最有效的方式来插入阵列(或列表)到SQL服务器,你一定要这样说的:http://www.sommarskog.se/arrays-in-sql-2008.html

如果以后有一个具体的问题,你可以回来并展示你的尝试。

+0

好吧,这不是一个真正有效的插入列表的方式,这只是一种循环访问列表并一次插入一个列表的方法。 TVP将是一个更有吸引力的选择。 :-) –

+0

@AaronBertrand:我想演示一个简单的例子,因为我假定OP只是想插入他的一维列表(一个字段)。没有要求最有效的方法;)如果他想知道如何最有效地处理列表(数组),他应该阅读以下内容:http://www.sommarskog.se/arrays-in-sql-2008.html –

+0

我的数据库有30列,但我在列表中只有20列,它根据用户动态增长。现在,如何做插入? – Praveen

相关问题