这里是备份,原文请看我的网站:[习题]SqlDataSource的「FilterExpression」属性,需搭配 DataSet模式
SqlDataSource的「FilterExpression」属性,需搭配 DataSet模式
SqlDataSource的「DataSourceMode」预设就是 DataSet了。所以不用修改。
SqlDataSource的「FilterExpression」属性
说穿了,就是执行SQL指令之后,放到 DataSet里面。
然后,再从 DataSet里面去作「筛选」。
他也可以搭配「参数」的方法(名为 FilterParameters)来作。
本文的补充范例,可以放在ASP.NET 4.0 专题实务(松岗出版)
「上集」光盘里面的 第20章「网站内部的小搜寻引擎」,当作补充教材。
这个范例,在「下集」的光盘里面也有提供。
================================================================================
范例一。Search_DataSet.aspx
我们使用 「Select * from 数据表 Where title like '% 关键词 %' 」 来进行单一字段的搜寻。
从数据库捞(查询)数据出来,就已经完成了。
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:在Web.Config文件里面,你自己的联机字符串 %>"
SelectCommand="SELECT * FROM [test] WHERE ([title] LIKE '%' + @title + '%')" >
<SelectParameters>
<asp:ControlParameter ControlID="TextBox1" Name="title" PropertyName="Text"
Type="String" />
</SelectParameters>
</asp:SqlDataSource>
================================================================================
范例二。Search_DataSet_1.aspx
跟上一个范例最大的不同,就是我们的SQL指令!
们使用 「Select * from 数据表」来进行单一字段的搜寻。
基本上,是捞出「全部」的记录。
然后,再透过 FilterExpression作筛选。
这就是两个范例最大的不同点。
与上一个范例的差别,就在于 HTML设计画面。
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:在Web.Config文件里面,你自己的联机字符串 %>"
SelectCommand="SELECT * FROM [test]"
FilterExpression="title like '%{0}%'" >
<FilterParameters>
<asp:ControlParameter ControlID="TextBox1" Name="newparameter1"
PropertyName="Text" />
</FilterParameters>
</asp:SqlDataSource>
================================================================================
范例三。Search_DataSet_2_Manual.aspx
这就是范例二的「手写版」。
"不" 使用 SqlDataSource精灵,如果您想多学一点,可以参考看看。
FilterExpression 与 FilterParameters,都放在后置程序代码来写。
我的书,跟别人不同。
除了精灵可以完成的步骤外,我很坚持自己要能 "写程序",把全部的流程跑一遍。
没道理 Visual Studio的精灵能做到的,你却写不出程序来作一样的事?
那要学啥?
1. 初学者、或是程度「暂时」还跟不上的朋友, 可以学简单的版本,用精灵拉一拉就完成。
手写程序,可以等待以后再回头学习。
(反正书里都有!有需要,就会查得到! .....但你买别的「入门」书,"大部分" 都没有。你想学也找不到范例!)
2. 愿意跟自己挑战、要提升功力的人,也可以学到完整的「手写程序」。
范例下载(因为这几个范例很简单,只提供 VB语法)-- SqlDataSource_FilterExpression.rar
第三个手写的程序,C#语法,您可以在书本的光盘里面,
参考一下 Search_Engine_4_SqlDataSource_Manual.aspx 即可。语法很简单。此范例在书本 上/下集都有提供。