从SqlDataSource获取查询结果并以字符串形式存储

时间:2011-11-18 02:24:27

标签: asp.net string parameters sqldatasource

我有一个SQL查询,会产生一个字符串。而不是将gridview,listview等绑定到它并且内部有一个孤独的标签,我只想存储字符串(它最终会在以后的其他地方使用)。对于我的生活,我无法弄清楚这一点。

<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'。如果我将[“@标题”]更改为[1],它将显示类型。现在只有四本书,每本都有一个独特的类型。

2 个答案:

答案 0 :(得分:2)

添加一个按钮,并在按钮单击的处理程序中编写此代码。

DataSourceSelectArguments sr = new DataSourceSelectArguments();
DataView  dv =(DataView) SqlDataSource3.Select(sr);
if(dv.Count!=0)
   Label1.Text = dv[0][0].ToString();

答案 1 :(得分:0)

在进行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对象。