我有一个动态的方法来插入SQL。当我在参数上放置一个空值或空值时,我的ExecuteNonQuery()
失败...如何调整它?SqlCeParameter null
我使用SQL Server精简版:
public static void SqlInsert(string table, Dictionary<string, object> values)
{
using (var conn = new SqlCeConnection(ConnectionStringDestino))
{
conn.Open();
var equals = new List<string>();
var columns = new List<string>();
var parameters = new List<SqlCeParameter>();
var i = 0;
foreach (var item in values)
{
var pn = "@sp" + i;
columns.Add(string.Format(item.Key));
equals.Add(string.Format("{0}", pn));
parameters.Add(new SqlCeParameter(pn, item.Value));
i++;
}
string command = string.Format("INSERT INTO {0} ({1}) VALUES ({2}) ", table, string.Join(", ", columns.ToArray()), string.Join(", ", equals.ToArray()));
var sqlcommand = new SqlCeCommand(command, conn);
sqlcommand.Parameters.AddRange(parameters.ToArray());
sqlcommand.ExecuteNonQuery();
}
}
列是否无效?生成的SQL看起来像什么? –
我的列接受空值。 – Pedro
你会得到什么样的错误? –