我知道在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是否返回任何值? 谢谢!
答案 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
事件处理程序中。