2012-03-23 13 views
0

現在、グラフ作成用プラグインで使用するXMLを作成する必要があるプロジェクトに取り組んでいます。私はXMLリテラル形式日付

   Dim x As XElement = _ 
       <chart caption='Aantal aanvragen' xAxisName='Dag' yAxisName='Aantal'> 
        <%= From d In dailies Select _ 
         <set label=<%= d.Datum %> value=<%= d.Aantal %>> 
         </set> %> 
       </chart> 

デイリーを次のようにSQLにXMLリテラルとLINQを使用していデータムは、Date型のものであり、単により複雑なLINQクエリのですか?とタイプIntのAantal。

私の問題は、日付を正しくフォーマットする方法です。私はそのようなものだろうと思った:

<%= CDate(d.Datum).ToString("d MMM yyyy") %> 

残念ながらそれは私を与える:

System.NotSupportedException:メソッド '可能System.StringのToString(可能System.String')SQLへのサポートの翻訳を持っていません。

誰にも解決策がありますか?前もって感謝します。

答えて

2

XMLコンテンツを構築する場合は、データがSQLサーバーから引き出されることを確認するには、AsEnumerable()などを追加します。

  Dim x As XElement = _ 
      <chart caption='Aantal aanvragen' xAxisName='Dag' yAxisName='Aantal'> 
       <%= From d In dailies.AsEnumerable() Select _ 
        <set label=<%= d.Datum %> value=<%= d.Aantal %>> 
        </set> %> 
      </chart> 

このように、メソッド呼び出しToString()をSQLに変換しようとすると、この問題を回避できます。

ただし、実際にそのテーブルの列にヌル値が含まれている場合は、その場合は何もしないようにしてください。

From d in dailies.AsEnumerable() Where d.Datum.HasValue Select ... 

またはIf演算子を使用してデフォルトを出力します。しかし、それはより多くのVBの問題がLINQ to XMLの問題であり、VBは私の強みではないので、おそらくあなたはすでに自分自身を分類しています。

+0

ありがとうございます、AsEnumerableはトリックを行いました。 – Rene