使用 ADO.NET 如何将数据列表插入 SQL?
Posted
技术标签:
【中文标题】使用 ADO.NET 如何将数据列表插入 SQL?【英文标题】:Using ADO.NET how to insert list of data into 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 解析为某个类。然后您可以使用准备好的语句插入该数组的每条记录... 查看此博客。它有你的问题的答案grauenwolf.github.io/DotNet-ORM-Cookbook/Joins.htm#ado.netgrauenwolf.github.io/DotNet-ORM-Cookbook/… 使用批量插入。 SqlBulkCopy 【参考方案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
哈哈,我明白了,谢谢以上是关于使用 ADO.NET 如何将数据列表插入 SQL?的主要内容,如果未能解决你的问题,请参考以下文章
通过 C# 使用 ado.net 将值插入 SQL Server 数据库