Выберите значение в выпадающем списке для источника данных для запроса базы данных - PullRequest
0 голосов
/ 25 января 2012

Я сгенерировал график, используя функцию Chart в ASP.NET, которая извлекает его данные из базы данных SQL.На данный момент он получает все температуры за 2008 год, так как я попросил источник данных SQL найти все даты, включая 2008. Я пытался подключить поле со списком к источнику данных SQL, поэтому, когда я выбираю год, он ищет этоконкретный год, а не 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».Как преобразовать значение в поле со списком в целое число, чтобы его можно было использовать в источнике данных?Я не пытаюсь заполнить раскрывающееся меню данными из источника данных, я пытаюсь использовать раскрывающееся меню для ввода значения в источник данных.

Спасибо.

1 Ответ

0 голосов
/ 25 января 2012

измените элементы раскрывающегося списка на <asp:ListItem Value="2011">2011</asp:ListItem>, а также ваш SQL-запрос должен быть похож на ваш запрос из первого фрагмента кода DatePart(yyyy, JobDate)

...