英文VB教程 简体Visual Basic教程 繁体Visual Basic教程

第二十八�: 建立SQL搜寻功能



在上一课中,我们已经学会使用基本的 SQL 关键� SELECT(选择)�  FROM来操作在Visual Basic 6环境中的数据库。在本课中,您将学习如何使用更多SQL关键词� 其中一个重要的SQL关键词之一� WHERE� 这个关键字允许用户搜索符合一定条件的数据。语法如下:

SELECT 字段1,字段2,.....,字段n  FROM  表名 WHERE  条件

条件可用运算�=, >,<, <=, >=, <>Like 来设�

我们用在上一课中创建的数据库books.mdb来示范关键词 SELECT � FROM 更复杂的用法。首先,启动一个新的项目,然后插入一个DataGrid控件和一个ADO控件到表。在ADODC属性页对话框中,单击Recordsource选项卡上,在指令类型(Command Type)选择1-adCmdText,并在Command Text(SQL)键入SELECT* FROM 书库�� 接下来,插入一个文本框,并把它放在DataGrid控件的顶部,这将是用户可以输入SQL查询文本的地方。最后要加入的控件是一个命令按钮并把其标题改为搜寻�设计界面如图28.1所示:

�28.1

范例28.1:根据作者的查询

我们可键入以下的SQL查询语句来搜寻作者的名字:

SELECT 书名, 作� FROM 书库� WHERE 作�='张小�'

当你点击查询按钮后,DataGrid将显示作者张小东的名字,如图28.1所示:

�28.2

 

范例28.2:根据年份的查询

我们可键入以下的SQL查询语句来搜寻书籍的出版年份:

SELECT * FROM  书库� WHERE 年份>2009

当你点击查询按钮�,  DataGrid 将显�2009年以后出版的所有书籍,如图28.2 所示�

�28.2

您也可以尝试下面的查询:

您也可以通过模式匹配来搜索包含特定字符的数据。它涉及到使用LIKE运算符和%符号。例如,如果你想寻找一个以V 字母开头的作者姓名,你可以使用下面的查询语句

SELECT * FROM 书库� WHERE 书名 Like 'V%'

当你点击查询按钮�, 以V字母开头的书名的记录会显示出来,如�28.3所示:

�28.3

 

接下来,如果你要按照顺序或者逆序来排名,你可�ORDER By , ASC (ascending) � DESC(Descending) SQL 关键�.语法如下�

SELECT 字段1,字段2,.....,字段n  FROM  表名 WHERE  条件ORDER BY 字段 ASC

SELECT 字段1,字段2,.....,字段n  FROM  表名 WHERE  条件 ORDER BY 字段 DESC

范例28.3

下面的查询语句将根据作者把记录按顺序排列�

SELECT 书名, 作� FROM 书库� ORDER BY 作�  ASC

�28.4

范例 28.4

下面的查询语句按价格降序排列�

SELECT 书名, 价钱 FROM 书库� ORDER BY 价钱  DESC

�28.5

以上的范例是为了示范SQL关键字的应用,但对不熟悉电脑编程语言的一般用户会造成困扰。要解决上述问题,我们需要把搜寻程序改得更简易,用户只需要键入任何字眼即可搜寻要找的资料。这个改善的程序需要加入两个单选按钮并将其标签改为书名作�及一个命令按钮并将其标签改为搜寻。设计界面如�28.6所�

�28.6

搜寻程序代码需要用到语�If...Then...Elseif...Else..EndIf 及SQL 中的关键�SELECT ...FROM....WHERE 。其程序代码如下�

Private Sub cmdSearch_Click()
Dim strAuthor, strTitle As String


strAuthor = txtSearch.Text
strTitle = txtSearch.Text


If optAuthor.Enabled = True Then
Adodc1.RecordSource = "SELECT 作� FROM 书库� WHERE 作�='" & strAuthor & "'"

ElseIf optTitle.Enabled = True Then
Adodc1.RecordSource = "SELECT 书名 FROM 书库� WHERE 书名='" & strTitle & "'"

End If
Adodc1.Refresh

End Sub

以下是输出界面:

�28.8


❮ 上一� 下一� ❯



版权所�©2008 Dr.Liew Voon Kiong。保留所有权� 。联系我�: VB面子�

[Privacy Policy]