如何使用linq C#查询smallInt主键上的数据集table

How to query dataset table on primary key of smallInt using linq C#

假设我有以下 sql table。 Customer_id 列是具有 smallint 的主键。

我正在尝试创建一个 linq 查询,我想在其中获取 ID 为 1 的客户的所有数据。

如何操作。

已完成但未运行:

1.

        var query = from row in dt.AsEnumerable()
            where row.Field<Int32>("customer_id") == Convert.ToInt32(2)
            select row;

2.

        var query = from row in dt.AsEnumerable()
            where row.Field<Int16>("customer_id") == Convert.ToInt16(2)
            select row
  1. 调试例如 1,2

  1. 语法错误

  1. 例外情况

尝试使用 short 类型而不是 Int32

你为什么不用这个:

DataRow needle = hayStack.Tables["Customer"].Rows.Find(2);

你的方法应该重写成这样:

private DataRow GetCustomerDetails(Int16 customer_id)
{
     return _dt.Tables["Customer"].Rows.Find(customer_id);
}

调用方法必须检查从该方法 return 发出的 null,因为无效的 customer_id 会导致 Find() tu return null.