如何用每个X的特定值替换字符串中的“[X]”?

时间:2011-09-24 20:24:19

标签: c# string

string Sample=@"
Select * from Table1 where Id =[MY Id]
and Column2=[MY Column2 Value]
 ";

这是SqlCommand CommandText我将替换所有以[并以...结尾]开头的字符串 在使用命令之前 如何找到参数名称beetwen [和]? 我是否必须使用string.IndexOf(Sample,'[')ets。还是有另一个空白容易吗?

3 个答案:

答案 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);

其中id1id2是您的参数。