Как заменить «[X]» в строке определенным значением для каждого X? - PullRequest
0 голосов
/ 25 сентября 2011
string Sample=@"
Select * from Table1 where Id =[MY Id]
and Column2=[MY Column2 Value]
 ";

Это SqlCommand CommandText. Я заменю всю строку, которая начинается с [и заканчивается на] перед использованием команды Как я могу найти имя параметра между [и]? Нужно ли использовать string.IndexOf (Sample, '[') ets. или есть еще одна пустота, которую легко сделать?

Ответы [ 3 ]

7 голосов
/ 25 сентября 2011

Не делайте этого - посмотрите на использование 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";
   //..
}
0 голосов
/ 25 сентября 2011

В дополнение к возможности использования SqlParameter, вы можете определить

string Sample=@"
Select * from Table1 where Id =[{0}]
and Column2=[{1}]
 ";

и затем получите команду как

string cmd = String.Format(Sample, id1, id2);

где id1 и id2 - ваши параметры.

0 голосов
/ 25 сентября 2011

Нет - вы должны String.Format метод - см. Здесь: http://msdn.microsoft.com/en-us/library/system.string.format%28v=VS.100%29.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...