Здравствуйте, Igore, Вы писали:
I>Мне нужен этот аналог
аналога стандартного нету
I>DataSet allDS = new DataSet("allTable");
I>DataRow[] dr = null;
I>dr = allDS.Tables["tblClient"].Select("clientName='"+cmbClient.Text+"'")[0].GetChildRows(allDS.Relations["ClipsFromClientName"]);
I>При cmbClient.Text="[]fdsa][]''";//С управляющими символами
I>Select падает, мну нужен аланог SqlCommand.Parametrs.Add, ну или как из SqlCommand вытянуть правильный параметр.
Неокторые символы (называемые "специальные") надо "заэскэйпить". Например, так:
public static string EscapeLikeExpression(string expression) {
if(expression == null) {
throw new ArgumentNullException("expression");
}//if
StringBuilder value = new StringBuilder(expression);
int i = 0;
while(i < value.Length) {
char ch = value[i];
switch(ch) {
case '[': // Escape special characters
case ']':
case '*':
case '%':
value.Remove(i, 1).Insert(i, '[').Insert(++i, ch).Insert(++i, ']');
i++;
break;
default:
i++;
break;
}//switch
}//while
return value.ToString();
}
Использовать, соответственно, так:
dr = allDS.Tables["tblClient"].Select("clientName='" + EscapeLikeExpression(cmbClient.Text) + "'")[0].GetChildRows(allDS.Relations["ClipsFromClientName"]);
Мне нужен этот аналог
DataSet allDS = new DataSet("allTable");
DataRow[] dr = null;
dr = allDS.Tables["tblClient"].Select("clientName='"+cmbClient.Text+"'")[0].GetChildRows(allDS.Relations["ClipsFromClientName"]);
При cmbClient.Text="[]fdsa][]''";//С управляющими символами
Select падает, мну нужен аланог SqlCommand.Parametrs.Add, ну или как из SqlCommand вытянуть правильный параметр.