Мне нужны определенные столбцы из datatable, чтобы привязать их к DataGridView. У меня следующий столбец.
Work1 Price Area que Len bre size
A 12 x 1 1,2 1 1,2
A 12 лет 2 2 2,2 4,4
A 12 z 3 11 1 11
Выше моя таблица данных, и мне нужен указанный столбец, то есть Area, Que, bre, size [Que * (bre * Len)]
Чтобы получить этот тип данных, я использовал следующий запрос Linq-to-DataTable.
var data = dt.AsEnumerable().Select
(r => new
{
Area = r.Field<string>("Area"),
Que = r.Field<int>("Quantity"),
Breath = r.Field<decimal>("Breath"),
Length = r.Field<decimal>("Length"),
totLen = r.Field<int>("Quantity") * (r.Field<decimal>("Breath") * r.Field<decimal>("Length"))
}).ToList();
Но это не работает, это не имеет значения, я не знаю почему ?? Кто-нибудь может сказать мне, как я могу это сделать? И если есть какой-либо другой альтернативный вариант, чем я люблю это видеть ...
1 ответ
Выдает ошибку «Указанное приведение неверно».
Итак, вы получаете InvalidCastException
в Field
< / a> метод расширения.
Вы должны проверить, какой тип столбца не соответствует указанному вами, например:
totLen = r.Field<int>("Quantity") * r.Field<decimal>("Breath") * r.Field<decimal>("Length")
Вышеупомянутая ошибка не удастся, если любой из трех столбцов имеет другой тип, чем тот, который вы указали. Может быть, Breath
не decimal
, а double
.
Отредактируйте свой вопрос и укажите типы в базе данных, и мы сможем помочь определить правильные типы.
Похожие вопросы
Новые вопросы
c#
C# (произносится как «see Sharp») — это высокоуровневый мультипарадигменный язык программирования со статической типизацией, разработанный Microsoft. Код C# обычно нацелен на семейство инструментов и сред выполнения Microsoft .NET, которое включает в себя .NET, .NET Framework, .NET MAUI и Xamarin среди прочих. Используйте этот тег для ответов на вопросы о коде, написанном на C#, или о формальной спецификации C#.
totLen
? Как вы пытались оценить запрос, где вы его используете? Вы уверены, что нет никаких исключений, которые (молча) перехватываются?