Reputation: 99
Here is my code:
DataSet ds = new DataSet();
ds.ReadXml("drivers");
this is the normal code:
var q = from drivers in ds.Tables[0]
.Select("EmployeeNumber = " + "0000008823")
select (drivers["EmployeeNumber"] + " - " + drivers["Name"]);
the same code, but this code gives an error:
var q = from drivers in ds.Tables[0]
.Select("EmployeeNumber = " + "0000000023")
select (drivers["EmployeeNumber"] + " - " + drivers["Name"]);
Cannot perform '=' operation on System.String and System.Int32
This is my xml file:
<?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>
Upvotes: 0
Views: 455
Reputation: 1329
What do you think going into Linq to Dataset way?
var q2 = from drivers in ds.Tables[0].AsEnumerable()
where drivers.Field<string>("EmployeeNumber") == "0000000023"
select (drivers["EmployeeNumber"] + " - " + drivers["Name"]);
Additonal benefit, you can easily move to Linq2Sql or Linq2EF, if you filter the rows with a standard 'where' instead of the Select() method of the datatable.
Upvotes: 1
Reputation: 99
My solution was this
var q = from drivers in ds.Tables[0]
.Select("EmployeeNumber = '" + employeeNumber + "'")
select (drivers["EmployeeNumber"] + " - " + drivers["Name"]);
but I do not know why I got that error before
Upvotes: 1