【问题标题】:Using ADO.NET how to insert list of data into SQL?使用 ADO.NET 如何将数据列表插入 SQL?
【发布时间】:2020-12-01 07:13:14
【问题描述】:

我有一个数据列表,例如 list=[{id:1,name:"ABC",age:12},{id:2,name:"QWE",age:21}] 我想将这些数据动态插入到数据库中。

我用谷歌搜索并找到了如何插入特定数据。但不知道如何读取列表然后插入这些数据。

string connetionString = null;
            SqlConnection connection;
            SqlCommand command;
            string sql = null;
            connetionString = "Data Source=source;Initial Catalog=testDB;User ID=ABCD;Password=password";
            sql = "INSERT INTO TableName (id,name,age) VALUES('1','ABC',12)";
            connection = new SqlConnection(connetionString);
            try
            {
                connection.Open();;
                command = new SqlCommand(sql, connection);
                command.ExecuteNonQuery();
               
                command.Dispose();
                connection.Close();
            }
            catch (Exception ex)
            {
                Console.WriteLine("Can not open connection ! ");
            }

【问题讨论】:

  • 哦,好吧......提前问你......编码本身不是问题,不是吗?
  • 对于插入和阅读,您应该使用不同的代码。例如,您读取数据,也许您在 griedview 中显示,也许在单击事件之后您可以在表格中插入一些值。你写了你怎么能插入,如果你想我可以写你怎么读?
  • 您的数据,恕我直言,是 JSON,因此您可以使用库将 json 解析为某个类。然后您可以使用准备好的语句插入该数组的每条记录...
  • 使用批量插入。 SqlBulkCopy

标签: c# ado.net


【解决方案1】:
cnx.Open(); // open cnx 
if(List.Count !=0){ // if List isn't empty 
    for(int i = 0 i < List.Count ;i++)
        {
            // here he will execute one by one 
            string myQuery ="insert into TABLE_NAME values ('"+List[i][0]+"','"+List[i][1]+"','"+List[i][3]+"' ");
            SqlCommand cmd = new SqlCommand(myQuery,cnx);
            cmd.ExecuteNonQuery();
        }
}
// i hope it's help you :))

【讨论】:

  • 这就是你获得SQL注入攻击的方式;对不起,但这是一个糟糕的答案 IMO - 任何促进连接输入以创建 SQL 的东西本质上都是非常糟糕
  • 那么最好的方法是什么? :)) ?
  • 参数化 SQL,或者如果你正在做很多行:SqlBulkCopy
  • 哈哈,我明白了,谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-14
  • 2013-01-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-19
相关资源
最近更新 更多