在我的代码中我到处都有
command.Parameters.Add("@name",DbType.String).Value = name;
有没有更简单的方法?我很乐意做类似的事情
command.command.CommandTextFn("insert into tbl(key,val) values(?,?);",key,value);
并确定键/值是字符串还是int.我不介意我是否必须使用{0}而不是?
解决方法
使用
AddWithValue方法:
command.Parameters.AddWithValue( "@name",name );
您可以将此与扩展方法结合使用:
public static sqlCommand CreateCommand(this sqlConnection connection,string command,string[] names,object[] values ) { if (names.Length != values.Length) { throw new ArgumentException("name/value mismatch"); } var cmd = connection.CreateCommand(); cmd.CommandText = command; for (int i = 0; i < names.Length; ++i ) { cmd.Parameters.AddWithValue(names[i],values[i]); } return cmd; }
用作
var command = connection.CreateCommand( "insert into tbl (key,val) values(@key,@val)",new string[] { "@key","@val" },new object[] { key,val } );