VB中,怎样正确运用select语句?

2025-01-12 14:25:17
推荐回答(3个)
回答1:

select是SQL结构查询语言命令之一。

1)SQL 语句,定义结构查询语言 (SQL) 命令的表达式,例如 SELECT、UPDATE 或 DELETE,也可能包括像 WHERE 和 ORDER BY
这样的子句。SQL 字符串语句一般在查询和 rdoResultset
对象中使用,但也可以用来创建或修改数据库结构。


SQL 语句的语法与数据源有关。

2)SELECT - SQL命令

句法:

SELECT [ALL | DISTINCT] [TOP nExpr [PERCENT]]

[Alias.] Select_Item [AS Column_Name]

[, [Alias.] Select_Item [AS Column_Name] ...]

FROM [FORCE]

[DatabaseName!]Table [[AS] Local_Alias]

[[INNER | LEFT [OUTER] | RIGHT [OUTER] | FULL [OUTER] JOIN

DatabaseName!]Table [[AS] Local_Alias]

[ON JoinCondition …]

[[INTO Destination]

| [TO FILE FileName [ADDITIVE] | TO PRINTER [PROMPT] 

| TO SCREEN]]

[PREFERENCE PreferenceName]

[NOCONSOLE]

[PLAIN]

[NOWAIT]

[WHERE JoinCondition [AND JoinCondition ...]

[AND | OR FilterCondition [AND | OR FilterCondition ...]]]

[GROUP BY GroupColumn [, GroupColumn ...]]

[HAVING FilterCondition]

[UNION [ALL] SELECTCommand]

[ORDER BY Order_Item [ASC | DESC] [, Order_Item [ASC | DESC] ...]]

3)

SELECT - SQL命令例子:

下面的例子说明了如何使用SELECT的用户定义的函数用法。

例子1

例子1 显示所有企业在客户的名称(从一个表中的一个字段)。

SELECT customer.company FROM customer

例子2

例子2 显示两个表中三个字段的内容,并加入基于cust_id字段的两个表。它使用本地别名两个表。

SELECT a.company, b.order_date, b.shipped_on FROM customer a, orders b WHERE a.cust_id = b.cust_id

例子3

例子3 仅显示在指定领域唯一的数据记录。

SELECT DISTINCT a.company, b.order_date, b.shipped_on FROM customer a, orders b WHERE  a.cust_id =  b.cust_id

例子4

例子4 显示国家,邮编和公司按升序领域。

SELECT country, postalcode, company FROM customer ORDER BY country, postalcode, company

4)VB将上述例句作为字符串赋值给ADO数据对象,或者ADO数据访问控件属性,进而完成数据查询。

代码1:

Private Sub Command1_Click()
    Dim cnn As New Connection
    Dim rs As New Recordset
    Dim sql As String
    Dim ARR
    cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\wdOld.mdb;Persist Security Info=False"
    sql = "select 故障名称 from guzhang_bm"
    rs.Open sql, cnn
    Combo1.Text = "故障名称"
    Do While Not rs.EOF
        Combo1.AddItem rs("故障名称")
        rs.MoveNext    '打开表
    Loop
    rs.Close
    cnn.Close
End Sub

代码2:

Private Sub Form_Load()
    Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Program Files\Microsoft Visual Studio\VB98\BIBLIO.MDB;Persist Security Info=False"
    Adodc1.RecordSource = "select * from Authors"
    Adodc1.Refresh
    Debug.Print Adodc1.Recordset.Fields(2).Name
    Set DataGrid1.DataSource = Adodc1
End Sub

回答2:

" select * from student where 姓名 = " '" & Text8.Text & "'"这个单双引号搞错了!
select * from student where 姓名='"&text1.text&"'
第二句没什么问题啊!
单双引号要在英文状态下输入,否则会出错的!

回答3:

你是想把两句放在一起吧。
" select * from student where 姓名 ='" & Text8.Text & "'" & "order by 出生年月"

注意点:
姓名,在数据库中一般定义为字符串类型的,一定要在值的两边加单引号(’),另外,vb中连接两字符串是用&. 如果你对自己写的sql有疑问,可以在拼出sql后,把该sql打印出来,放在数据库中执行看可以不可以得到结果。也算是调试吧。

在vb中打印语句。
比如 aa="just test"

debug.print aa