2012-01-25 7 views
0

私は、SQLデータベースからデータを取得するASP.NETのチャート機能を使用してグラフを生成しました。 2008年を含むすべての日付を見つけるようにSQLデータソースに依頼して以来、2008年のすべての気温を取得しています。私はコンボボックスをSQLデータソースに接続しようとしていました。したがって、1年選択すると、特定の年ではなく2008以下のコードは、現在、2008年のすべてのタンをコンボボックスなしで動作して取得し、次のようにデータソースを照会するデータソースのコンボボックスから値を選択

<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

変更<asp:ListItem Value="2011">2011</asp:ListItem>にあなたのドロップダウンリスト項目とまたあなたのSQLクエリは、最初のコードスニペットDatePart(yyyy, JobDate)

+0

こんにちはからあなたのクエリに類似しているべきです。 Iveはあなたが提案したものを試してみました。私はこのページを試してみるとエラーが出ます:「Stringは有効なDateTimeとして認識されませんでした」ありがとう – Blob

+1

sqldatasourceの 'DbType =" Date "を' DbType = "String" 'に変更しました。 –

関連する問題