Foreach with Insert SQL(C#,SQL)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Foreach with Insert SQL(C#,SQL)相关的知识,希望对你有一定的参考价值。
我有值列表:
string[] DataValues
现在我想把所有的值都插入到insert中:
string myInsert = "Insert into table1(col1, col2, col3....col4) values (DataValues[0],DataValues [1], DataValues[2]....)
有可能以某种方式使用foreach?
答案
要获得您想要的内容,您可以格式化DataValues,如下所示:
var paramList = string.Join(",",DataValues.Select(x=>string.Format("'{0}'",x)).ToArray()
我认为你对列列表有相同的看法。
但是不要这样做
这将使你的代码容易出现sql注入你应该为每个值声明参数并通过参数使用它。
var parameters = string.Join(",",DataValues.Select((x,i)=>"@param"+i));
var myInsert = string.Format("Insert into table1({0}) values ({1})", columns, parameters);
using (SqlConnection connection = new SqlConnection(/* connection info */))
using (SqlCommand command = new SqlCommand(sql, connection))
{
for(var i=0; i< DataValues.Length ; i++)
{
var param = cmd.Parameters.Add("@param"+i, SqlDbType.NVarChar, DataValues[i].Length);
param.Value = DataValues[i];
}
command.ExecuteNonQuery();
}
以上是关于Foreach with Insert SQL(C#,SQL)的主要内容,如果未能解决你的问题,请参考以下文章
SQL Server - 在 INSERT 语句中使用 WITH 子句