Захватить результаты запроса из SqlDataSource и сохранить в виде строки - PullRequest
0 голосов
/ 18 ноября 2011

У меня есть запрос SQL, который приведет к одной строке.Вместо того, чтобы привязывать к нему сетку, список и т. Д. И иметь внутри одну одиночную метку, я просто хочу сохранить строку (она позже будет использована в другом месте).Что касается жизни, я не могу понять это.

<asp:SqlDataSource ID="SqlDataSource3" runat="server" ConnectionString="<%$      ConnectionStrings:ConnectionString %>"
SelectCommand="select [title] from [books]
               where([Genre]=@Genre)
OnSelected="SqlDataSource3_Selected">
<SelectParameters>
            <asp:Parameter Name="Title" Direction="ReturnValue" Type="String" />
            <asp:ControlParameter ControlID="DropDownList1" Name="genre" 
                PropertyName="SelectedValue" />

        </SelectParameters>

    </asp:SqlDataSource>

protected void SqlDataSource3_Selected(object sender, SqlDataSourceStatusEventArgs e)
{
    string sqlreturnString = Convert.ToString(e.Command.Parameters["@Title"].Value);
    Label3.Text = sqlreturnString;
}

Все, что я делаю, это выплевывает '0', когда я хочу, чтобы он отображал заголовок.Если я изменю ["@Title"] на [1], он будет отображать жанр.На данный момент есть только четыре книги, каждая с уникальным жанром.

Ответы [ 2 ]

2 голосов
/ 18 ноября 2011

Добавьте кнопку и напишите этот код в обработчике нажатия кнопки.

DataSourceSelectArguments sr = new DataSourceSelectArguments();
DataView  dv =(DataView) SqlDataSource3.Select(sr);
if(dv.Count!=0)
   Label1.Text = dv[0][0].ToString();
0 голосов
/ 22 января 2013

Я сталкивался с этой же проблемой и при работе с C # и ASP.NET, было бы очень неплохо иметь метод, который выводит строку текстовых результатов запроса в SQLDataSource или AccessDatasource. До тех пор вот пример решения, которое я нашел, которое работает очень хорошо:

AccessDataSource MyDataSource = new AccessDataSource("~/App_Data/MyDB.mdb",
                                                                "SELECT Name FROM Employees");
DataView MyView = (DataView) MyDataSource.Select(DataSourceSelectArguments.Empty);
lblResults.Text = MyView[0][1].ToString();

Этот пример также будет работать с объектами SqlDataSource.

...