如何在代码隐藏文件中使用count函数返回的值

时间:2011-11-28 15:05:37

标签: c# asp.net sql formview

我知道在sql查询中可以使用count函数来返回受影响的行数。我需要使用我的sql select语句返回的值来决定文件后面的代码。

<asp:sqldatasource ID="Sqldatasource1" runat="server" 
    ConnectionString="<%$ ConnectionStrings:CUSTOMERConnectionString %>" 
    SelectCommand=
        "SELECT COUNT O.siren, O.siret, O.sap_code, CLIENT.display_name, CLIENT.departement, STATUS.status_lib_fr, PERSONNEL.dbo.EMPLOYES.display, CLIENT.client_id 
        FROM ORGANIZATION AS O INNER JOIN CLIENT ON O.client_id = CLIENT.client_id       
        WHERE (O.siren = @value) OR (O.siret = @value) OR (O.sap_code = @value) OR (O.name1 LIKE '%' + @value + '%') OR (O.name2 LIKE '%' + @value + '%') OR (O.name_other LIKE '%' + @value + '%') OR (O.name_short LIKE '%' + @value + '%') OR (O.name_long LIKE '%' + @value + '%')" > 
     <SelectParameters>
        <asp:ControlParameter ControlID="TxtValue" Name="value" PropertyName="Text" 
            Type="String" />
     </SelectParameters>
</asp:sqldatasource>
<asp:TextBox ID="TxtValue" runat="server" Width="164px"/>

所以如果select命令返回的值为零,那么我需要在后面的代码中执行另一组操作。但是如何访问这个值呢?或者有没有其他方法来确定select stmt是否返回任何值? 谢谢!

2 个答案:

答案 0 :(得分:2)

为什么不直接将SQL语句放在代码隐藏文件中?更好的是,执行LINQ to SQL查询,该查询将以IEnumberable<string>或类似的形式吐出结果,这取决于您可以通过各种方式使用的数据。您可以在其上调用.Count()以查看查询返回的记录数,或者您是否只想测试它是否为空,.Any()。

这样可以保留C#代码中的所有数据,然后可以根据需要将其发送到页面。可以在http://msdn.microsoft.com/en-us/vstudio/bb688085找到Linq to SQL的一种备忘单,可以在http://msdn.microsoft.com/en-us/library/bb425822.aspx找到更详细的解释。

我最近不得不在我的一个只有SQL经验的项目中实现Linq to XML,并且它的多功能性和易用性给我留下了深刻的印象。绝对值得一看。

答案 1 :(得分:0)

您可以从TxtValue.Text中检索值,例如在OnPreRender事件处理程序中。