0

これが私のコードです:

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>
4

2 に答える 2

1

Linq to Dataset の方法についてどう思いますか?

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

追加の利点として、データテーブルの Select() メソッドの代わりに標準の「where」で行をフィルタリングすると、Linq2Sql または Linq2EF に簡単に移行できます。

于 2013-03-01T08:10:09.873 に答える
1

私の解決策はこれでした

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

しかし、なぜ以前にそのエラーが発生したのかわかりません

于 2013-03-01T07:30:46.623 に答える