2012-01-25 133 views
0

我使用ASP.NET中的Chart函數生成了一個圖表,它從SQL數據庫中檢索它的數據。目前它檢索2008年的所有溫度,因爲我已經要求SQL數據源查找包含2008的所有日期。我一直在嘗試將組合框連接到SQL數據源,所以當我選擇一年時,它會尋找具體年份,而不是2008年。下面的代碼目前作品,未經組合框和檢索所有臨時工爲2008:從combobox中爲數據源選擇值到查詢數據庫

<asp:Chart ID="Chart1" runat="server" DataSourceID="SqlDataSource1" 
     Height="349px" Width="977px"> 
     <Series> 
      <asp:Series Name="Series1" XValueMember="JobDate" YValueMembers="CureTemp"> 
      </asp:Series> 
     </Series> 
     <ChartAreas> 
      <asp:ChartArea Name="ChartArea1"> 
      </asp:ChartArea> 
     </ChartAreas> 
    </asp:Chart> 
    <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
     ConnectionString="<%$ ConnectionStrings:T2DataString %>" 
     SelectCommand="SELECT * FROM [T2] WHERE DatePart(yyyy, JobDate) = 2008"> 
    </asp:SqlDataSource> 

我加入了以下組合框,並改變了我的SQL數據源如下:

<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
     ConnectionString="<%$ ConnectionStrings:T2DataString %>" 
     SelectCommand="SELECT * FROM [T2] WHERE ([JobDate] = @JobDate)"> 
     <SelectParameters> 
      <asp:ControlParameter ControlID="ComboBox" DbType="Date" Name="JobDate" 
       PropertyName="SelectedValue" /> 
     </SelectParameters> 
    </asp:SqlDataSource> 

    <asp:DropDownList ID="ComboBox" runat="server"> 
     <asp:ListItem>2011</asp:ListItem> 
     <asp:ListItem>2010</asp:ListItem> 
     <asp:ListItem>2009</asp:ListItem> 
     <asp:ListItem>2008</asp:ListItem> 
    </asp:DropDownList> 

當我嘗試運行該應用程序時,它說:'字符串未被識別爲有效的DateTime'。如何將組合框中的值轉換爲整數,以便可以在數據源中使用它?我不是想用數據源中的數據填充下拉菜單,我試圖使用下拉菜單在數據源中輸入值。

謝謝。

回答

0

改變你的下拉listItems中<asp:ListItem Value="2011">2011</asp:ListItem>,也是你的SQL查詢應該是類似於從第一代碼片斷DatePart(yyyy, JobDate)

+0

您好您的查詢。我嘗試了你的建議,當我嘗試運行該頁面時出現錯誤:「字符串未被識別爲有效的DateTime。」謝謝 – Blob

+1

在sqldatasource中將DbType =「Date」'更改爲'DbType =「String」' –