string Sample=@"
Select * from Table1 where Id =[MY Id]
and Column2=[MY Column2 Value]
";
这是SqlCommand CommandText我将替换所有以[并以...结尾]开头的字符串 在使用命令之前 如何找到参数名称beetwen [和]? 我是否必须使用string.IndexOf(Sample,'[')ets。还是有另一个空白容易吗?
答案 0 :(得分:7)
请勿这样做 - 请使用SqlParameter
代替参数化您的查询,这是内置的,即:
using(SqlCommand cmd = new SqlCommand("Select * from Table1 where Id = @id and Column2=@columnTwo", myConnection))
{
cmd.Parameters.Add(new SqlParameter("@id", SqlDbType.BigInt)).Value = someId;
cmd.Parameters.Add(new SqlParameter("@columnTwo", SqlDbType.NVarChar)).Value = "You name it";
//..
}
答案 1 :(得分:0)
不 - 您应该String.Format
方法 - 请参阅此处:http://msdn.microsoft.com/en-us/library/system.string.format%28v=VS.100%29.aspx
答案 2 :(得分:0)
除了使用SqlParameter
的可能性之外,您还可以定义
string Sample=@"
Select * from Table1 where Id =[{0}]
and Column2=[{1}]
";
然后获取命令
string cmd = String.Format(Sample, id1, id2);
其中id1
和id2
是您的参数。