#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 .