Linq Select Error

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

Answers (2)

Laszlo Boke
Laszlo Boke

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

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

Related Questions