0

<short>次のコード行で、列挙可能な行コレクションを暗黙的に short に変換できないというエラーが発生しました。

Month = (from item in query select (short)item.Month);

クエリ変数でdistinct()またはcountメソッドが見つからない理由と理由を知りたいです。

ここに私の方法があります:

 public bool IsEnableAccPosting(
      string CompanyCode, DateTime FromDate, DateTime ToDate, out short Month)
 {
     try
     {
         o_dmDebitAccounts = new dmDebitAccounts(sysInfo);

         bool IsEnable = false;

         DataTable dt = o_dmDebitAccounts.GetDebitInterestAccPeriods(CompanyCode);

         var query = from data in dt.AsEnumerable()
                     where data.Field<DateTime>("StartDate") == FromDate && 
                           data.Field<DateTime>("EndDate") == ToDate
                     select new 
                     {
                         Month = Convert.ToInt16(data.Field<short>("Month")),
                         Year = Convert.ToInt16(data.Field<short>("Year"))
                     };

         Month = (from item in query select (short)item.Month); //heres the error
4

1 に答える 1

0

フィールドは、操作を実行している linq クエリで既に Int16 として入力されています。キャストする必要はありません。

here から取得した次のコードを試してください

if (query.Any())
{
    var result = query.First();

    // Console.WriteLine("Results: {0}", result.Month);
    Month = result.Month;

}
于 2013-03-06T20:47:49.563 に答える