0

私は Scott Gu DynamicLinqクラスを使用しており、結果セットをグリッドビューにデータバインドする前に、日時を変換して短い日時を返そうとしていASP.netます。これで、gridview 行のデータバインド イベントを実行し、各セルをチェックして日付かどうかを確認し、日付の場合は日付を shortdate に変換できることがわかりましたが、これは非常に面倒で、そうは感じません。非常に効率的です。

次のように、DynamicLinq で select ステートメントを作成しています。

フィルターは次のように情報を取得します。

 foreach (KeyValuePair<string,string> kvp in dictFilters)
        {
            filter += kvp.Key + " as " + kvp.Value.Replace("-", "_").Replace(" ", "_") + ",";
        }


        var result = db.ViewADHOCContractInfos.Select("new(" + filter + ")");

これにより、次の結果セットが得られます。

    {SELECT [t0].[dtmAward] AS [Award_Date], [t0].[guidFromId],  [t0].[strFundingNumber] AS [Funding_Number], [t0].[dtmCertified] AS [Certified_Date], [t0].[strFundingNumberStatus] AS [Funding_Status]
FROM [dbo].[ViewADHOCInfo] AS [t0]
}

今私が欲しいのはこれです:

   {SELECT Convert(VarChar, [t0].[dtmAward], 101) AS [Award_Date], [t0].[guidFromId],  [t0].[strFundingNumber] AS [Funding_Number], [t0].[dtmCertified] AS [Certified_Date], [t0].[strFundingNumberStatus] AS [Funding_Status]
FROM [dbo].[ViewADHOCInfo] AS [t0]
}

Dynamic Linqを使用してselectステートメントでSQL変換を追加することは可能ですか?

4

1 に答える 1

1

あなたはフォーマットの問題です:

列の DataFormatString プロパティを次のように設定するだけです。

DataFormatString="{0:MM/dd/yyy}"

完全なコンテキスト:

<asp:BoundField DataField="DateColumn" 
                    HeaderText="Date" 
                    DataFormatString="{0:MM/dd/yy}" />

または、ケースに適した形式にすると、日付が適切にフォーマットされます。

于 2012-08-28T13:55:26.920 に答える