Запрос LINQ для получения результата фильтрации

#c# #asp.net #linq #ado.net

#c# #asp.net #linq #ado.net

Вопрос:

Эксперты,

У меня есть таблица данных с двумя столбцами:

1) Единица является десятичной
2) Единица является строкой

Я пишу свой запрос фильтра следующим образом:

 var iFilterResult = from c in dataTable1.AsEnumerable()
                                    where c.Field<string>("ACM_ACCOUNT_CODE").Contains(txtFindPrePaidExpenses.Text)
                                    amp;amp; c.Field<string>("ACM_ACCOUNT_DESC").Contains(txtFindPrePaidExpenses.Text)
                                    select new
                                    {
                                        ACM_ACCOUNT_CODE = c.Field<string>("ACM_ACCOUNT_CODE"),
                                        ACM_ACCOUNT_DESC = c.Field<string>(" ACM_ACCOUNT_DESC")
                                    };
                gvSearchAccountGL.DataSource = iFilterResu<
                gvSearchAccountGL.DataBind();  "
  

Здесь dataTable1 находится Datatable, имеющий столбец

ACM_ACCOUNT_CODE десятичного типа
ACM_ACCOUNT_DESC строкового типа.

используйте подобный запрос для фильтра.

Но это не работает

Комментарии:

1. Как это «не работает»?

Ответ №1:

Вы пытаетесь использовать ACM_ACCOUNT_CODE в качестве строкового поля — но вы сказали, что это десятичное поле.

Непонятно, почему вы ожидаете, что десятичное поле будет содержать то же значение, что и поле описания. Если вы действительно этого хотите, вы могли бы использовать:

 c.Field<decimal>("ACM_ACCOUNT_CODE")
 .ToString()
 .Contains(txtFindPrePaidExpenses.Text)
  

… но я подозреваю, что вам следует переосмыслить, что пытается сделать запрос.

Комментарии:

1. На самом деле я заполняю Datable из базы данных, после чего вся фильтрация выполняется из datable без попадания в базу данных.

2. @Dinesh: Да, я говорил о вашем запросе LINQ .