Linq选择错误

时间:2013-03-01 07:25:51

标签: c# linq dataset

这是我的代码:

DataSet ds = new DataSet();
ds.ReadXml("drivers");

这是正常的代码:

var q = from drivers in ds.Tables[0]
        .Select("EmployeeNumber = " + "0000008823")
        select (drivers["EmployeeNumber"] + " - " + drivers["Name"]);

相同的代码,但此代码出错:

var q = from drivers in ds.Tables[0]
        .Select("EmployeeNumber = " + "0000000023")
        select (drivers["EmployeeNumber"] + " - " + drivers["Name"]);
  

无法对System.String和System.Int32执行'='操作

这是我的xml文件:

<?xml version="1.0" encoding="utf-8"?>
  <drivers>
    <Driver>
      <Name>John</Name>
      <EmployeeNumber>0000000023</EmployeeNumber>
    </Driver>
    <Driver>
      <Name>Mike</Name>
      <EmployeeNumber>0000008823</EmployeeNumber>
    </Driver>
</drivers>

2 个答案:

答案 0 :(得分:1)

我的解决方案就是这个

var q = from drivers in ds.Tables[0]
        .Select("EmployeeNumber = '" + employeeNumber + "'")
        select (drivers["EmployeeNumber"] + " - " + drivers["Name"]);

但我不知道为什么我在

之前得到了这个错误

答案 1 :(得分:1)

您如何看待Linq到Dataset的方式?

var q2 = from drivers in ds.Tables[0].AsEnumerable()
         where drivers.Field<string>("EmployeeNumber") == "0000000023"
         select (drivers["EmployeeNumber"] + " - " + drivers["Name"]);

如果您使用标准的“where”过滤行而不是数据表的Select()方法,则可以轻松移动到Linq2Sql或Linq2EF。