2012-03-23 64 views
0

目前,我正在開發一個項目,該項目需要我創建一些用於繪圖插件的XML。我使用XML文本和LINQ to SQL如下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> 

樣片僅僅是一個更復雜的Linq查詢,數據是Date類型的?和Int類型的Aantal。現在

我的問題是如何正確格式的日期。我認爲這會是這樣的:

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

不幸的是,讓我:

System.NotSupportedException:方法 'System.String的ToString(System.String)' 有沒有支持轉換爲SQL。

有沒有人有一個解決的辦法?提前致謝。

回答

2

如果你想構造XML內容,你可以通過添加AsEnumerable()來確保數據是從SQL服務器中提取的。

  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的問題。

但是,您需要決定,如果該表列確實包含空值,如果您確實將d.Datum設置爲某個項目的Nothing值,則請確保您排除這些項目。

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

或使用If運算符輸出一些默認值。但是,這是一個VB問題,而不是一個LINQ to XML問題,VB不是我的優勢,所以也許你已經有了自己的排序。

+0

謝謝,AsEnumerable的伎倆。 – Rene 2012-03-28 08:29:09