这是我的代码:
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>
答案 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。