Отсутствует операнд после оператора '='

2013-05-21 4 views
3

У меня есть эта строка кода, которая использует dataview view_1, и я пытаюсь фильтровать datagridview по имени продукта и его размеру с помощью RowFilter. Вот код:Отсутствует операнд после оператора '='

view_1.RowFilter = "product_name = '" + cboProduct.Text + "' AND size = " + cboSize.Text + ""; 

И когда я пытаюсь запустить приложение это говорит Missing operand after '=' operator. Итак, что это за недостающий операнд?

+0

взять пробел между ' ' "+ cboProduct.Text +"'' 'AND' – Rahul

+5

хороший пример использования' String.Format' – I4V

ответ

1

Я не знаю, что это неправильно, я пытался сначала фильтровать, если текст cboProduct и cboSize пуст или если выбор не был сделан, и теперь он работает. Спасибо. Вот код

if (cboProduct.Text == string.Empty || cboProduct.SelectedIndex == -1 || cboSize.Text == string.Empty || cboSize.SelectedIndex == -1) 
      { 
       view_1.RowFilter = string.Empty; 
      } 
      else 
      { 
       view_1.RowFilter = "product_name = '" + cboProduct.Text + "' AND size = " + cboSize.Text + ""; 
      } 
4

Написать как этот

view_1.RowFilter = "product_name = '" + cboProduct.Text + "' AND size = " + cboSize.Text + ""; 

Отсутствующие Белый проблема пространства

Редактировать

Вы можете также использовать string.Format

view_1.RowFilter = String.Format("product_name = '{0}' AND size = {1}", cboProduct.Text,cboSize.Text); 
7

У Вас есть недостающий бело-УПП е в 'AND

Так заменить

'AND 

с

' AND 

Is размер строка-столбец или ИНТ-колонки? Если это вам строка в кавычки тоже:

AND size = '" + cboSize.Text + "'"; 

или даже лучше, использовать String.Format как и другие отметили, так как она увеличивает читаемость:

view_1.RowFilter = string.Format("product_name = '{0}' AND size = '{1}'" 
      , cboProduct.Text 
      , cboSize.Text); 
+0

та же ошибка ..... – Harvey

+0

@Harvey Не могли бы вы вставить свой запрос для отладки кода –

+0

@Harvey: Является ли размер строковым столбцом или int-column? Если это строка, вам также нужны кавычки. 'AND size = '" + cboSize.Text + "'"; '. Btw вместо того, чтобы переписывать свой вопрос, чтобы удалить неправильную часть, вы должны добавить вместо этого информацию, которая еще не работает. Теперь мой ответ больше не имеет смысла это могло быть полезно для других с аналогичной проблемой. –

0

Если переменная product_name оказывает значение, которое содержит пробел, то значение должно быть заключено в квадратных скобках в выражении фильтра: Таким образом, просто обернуть переменную product_name с помощью пары квадратные скобки как этот [product_name]

view_1.RowFilter = "[product_name] = '" + cboProduct.Text + "' AND size = " + 
cboSize.Text + ""; 

 Смежные вопросы

  • Нет связанных вопросов^_^