【问题标题】:How to insert a list of string into a table of SQL Server database如何将字符串列表插入到 SQL Server 数据库的表中
【发布时间】:2016-08-15 03:51:56
【问题描述】:

我有一个包含 3 列的表和一个主键:

create table tempTable
(
    id int primary key identity,
    name nvarchar(50),
    gender nvarchar(50),
    city nvarchar(50)
)

还有一个这样的字符串列表:

List<String> list = new List<String>() { "name", "male", "city" };

我想将此列表放入tempTable。我该怎么做?

【问题讨论】:

  • 您的问题既不清楚又不努力。临时表真的是临时表吗?您使用的是原始 ADO.Net 吗?到目前为止,您尝试过什么?
  • 方法有很多,累什么了?这是一个链接,它向您展示了一种将数据插入表stackoverflow.com/questions/14001040/… 的方法,并且您可以通过列表中的每个循环来完成它。还有更多方法。
  • 表的名称是 tempTable 我使用的是原始的 ado.net,这是我目前的代码。但我知道,这没有任何意义。 List list = new List() { "A", "B", "C" }; string qry = "插入临时表值(@Column)";使用 (var cmd = new SqlCommand(qry, connection)) { cmd.Parameters.Add("@Column", SqlDbType.VarChar); foreach(列表中的 var 值){ cmd.Parameters["@Column"].Value = value; cmd.ExecuteNonQuery(); } }
  • @SafayatZisan - 不要将其添加为评论,而是编辑您的问题并将其添加到那里

标签: c# asp.net sql-server ado.net


【解决方案1】:

你应该这样做:

string query="INSERT INTO tempTable(name, gender, city) VALUES (@name, @gender, @city)";
using (var connection = new SqlConnection(connectionString))
{
    using (SqlCommand command = new SqlCommand())
    {
        command.Connection = connection;
        command.CommandString = query;
        command.CommandType = CommandType.Text;
        command.Parameters.AddWithValue("@name", list[0]);
        command.Parameters.AddWithValue("@gender", list[1]);
        command.Parameters.AddWithValue("@city", list[2]);
        try
        {
            connection.Open();
            command.ExecuteNonQuery();
        }
        catch (SqlException ex)
        {
            // your code...
        }
    }
}

【讨论】:

  • 您应该查看Can we stop using AddWithValue() already? 并停止使用.AddWithValue() - 它可能会导致意想不到和令人惊讶的结果...
  • 哇!我从来没有遇到过 AddWithValue() 的问题。但我认为这是非常有趣的链接。谢谢你:)
猜你喜欢
  • 2012-02-22
  • 2016-06-03
  • 1970-01-01
  • 2013-03-05
  • 1970-01-01
  • 1970-01-01
  • 2012-12-29
  • 2015-06-08
相关资源
最近更新 更多