我要在具有大量列的表上进行一系列插入,例如:
INSERT INTO Table1 (A,B,C,...,Z) VALUES (@a,@b,@c,...,@z)
所有字段(A 到 Z)都可以为空。如果未能显式设置已写入命令文本的命令参数,则无法执行插入。
由于列名不是真正连续的(都有相当随机的名称),是否有一种简单的方法可以循环遍历命令文本中的参数并将它们设置为DBNull.Value
?还是我必须手动写出:
cmd.Parameters.AddWithValue("@a", DBNull.Value);
cmd.Parameters.AddWithValue("@b", DBNull.Value);
cmd.Parameters.AddWithValue("@c", DBNull.Value);
...
cmd.Parameters.AddWithValue("@z", DBNull.Value);
或者是构建实际使用的列并将它们连接在一起(和使用的参数),然后设置使用的参数的正确解决方案?
我倾向于回避查询的串联解决方案,以避免潜在的注入攻击。