我有值列表:
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();
}