2011-11-18 115 views
0

我有一个SQL查询将导致一个字符串。而不是绑定一个gridview,listview等,并且里面只有一个单独的标签,我只想存储这个字符串(它最终会在其他地方使用)。对于我的生活,我无法弄清楚这一点。从SqlDataSource获取查询结果并存储为字符串

<asp:SqlDataSource ID="SqlDataSource3" runat="server" ConnectionString="<%$  ConnectionStrings:ConnectionString %>" 
SelectCommand="select [title] from [books] 
       where([Genre][email protected]) 
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],则会显示流派。现在只有四本书,每本都有独特的风格。

+1

使用[0]怎么样? – Basic

回答

2

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

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

一旦我包含使用System.Data()它工作!谢谢! – ScottieB

+0

@ user1052985 - 您必须导入System.Data命名空间。 – adatapost

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的对象。