Linq - 指定的强制转换无效

本文关键字:转换 无效 Linq | 更新日期: 2023-09-27 18:19:47

IEnumerable<DataRow> drIEOrderDetail = 
   from data in dsOrder.Tables["ORDDETL02"].AsEnumerable()
   where data.Field<int>("INOWNER") == int.Parse(txtInventoryOwner.Text.Trim()).ToString()
   && data.Field<string>("SKUCODE") == txtSKUCode.Text.Trim()
   &&  data.Field<string>("PACKID") == cmbPackageId.SelectedValue.ToString()
   &&  data.Field<string>("BATCH") == txtBatch.Text.ToString()                                                           
   select data;

我在以下方面遇到错误:

data.Field<int>("INOWNER") == int.Parse(txtInventoryOwner.Text.Trim()).ToString()

其中INOWNER数据类型为整数。整数和字符串都不接受。

Linq - 指定的强制转换无效

您指定的 INOWNER 类型为 int,但您尝试将 txtInventoryOwner.Text 转换为文本对象。尝试删除 ToString((

data.Field<int>("INOWNER") == int.Parse(txtInventoryOwner.Text.Trim());

删除 ToString((:

   where data.Field<int>("INOWNER") == int.Parse(txtInventoryOwner.Text.Trim())

你提到了那个数据。字段("所有者"(的类型为 int。

您是否希望编译以下内容?

int myInt = data.Field<int>("INOWNER");
string myString = int.Parse(txtInventoryOwner.Text.Trim()).ToString();
bool b = myInt == myString;