以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]SELECT 语句  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=2129)

--  作者:狐哥
--  发布时间:2009/3/17 14:48:00
--  [求助]SELECT 语句
麻烦各位老师:
如下查询语句不知如何设置,LIKE语句不对吗?

Dim cm As String = e.form.Controls("combobox1").Value
Dim tx As String = e.form.Controls("textbox3").Value
Dim dst As WinForm.DataList = e.Form.Controls("DataList1")
Dim cmd As New SQLCommand
if cm = "柜号" then
    cmd.CommandText = "SELECT * From {柜型柜号} 柜号 like \'" & tx & "\'"
end if
dst.DataTable = cmd.ExecuteReader()
dst.Build()
--  作者:狐狸爸爸
--  发布时间:2009/3/17 14:50:00
--  
cmd.CommandText = "SELECT * From {柜型柜号} 柜号 like \'*" & tx & "*\'"
--  作者:狐哥
--  发布时间:2009/3/17 15:44:00
--  
非常感谢.
--  作者:狐哥
--  发布时间:2009/3/17 15:46:00
--  

是我公式写错,呵呵

[此贴子已经被作者于2009-3-17 15:47:06编辑过]

--  作者:狐哥
--  发布时间:2009/3/17 17:00:00
--  
如下加了WHERE仍不可以提取出来,麻烦帮我看看如下代码是否有错?

Dim cm As String = e.form.Controls("combobox1").Value
Dim tx As String = e.form.Controls("textbox3").Value
Dim dst As WinForm.DataList = e.Form.Controls("DataList1")
Dim cmd As New SQLCommand
if cm = "柜号" then
    cmd.CommandText = "SELECT * From {柜型柜号} WHERE 柜号 like \'*" & tx & "*\'"
end if
dst.DataTable = cmd.ExecuteReader()
dst.Build()

--  作者:狐狸爸爸
--  发布时间:2009/3/17 17:10:00
--  
  cmd.CommandText = "SELECT * From {柜型柜号} WHERE 柜号 like \'%" & tx & "%\'"
--  作者:狐狸爸爸
--  发布时间:2009/3/17 17:11:00
--  

LIKE运算符

LIKE运算符用于将指定表达式的值和一个模式字符串进行比较,判断两者是否匹配。

你在LIKE 操作样式里可以使用多种通配符,如下所示:

%(百分号)
匹配任意个数的字符。

[](方括号)
匹配任何被包括在方括号里面的单个字符。

!(感叹号)
匹配任何不属于被方括号所包含的字符。

-(连字符)
用于指定一个字符范围。

例如:

Like \'C%\',

表示以字符C开始的值。

Like \'P[A-F]%\'

表示以字母P开头、而其后接着介于A到F之间的任何一个字母,最后是任意个数的任何字符。

找出客户表中的贸易公司:

SELECT * FROM 客户 WHERE 公司名称 LIKE \'%贸易%\'

找出客户ID不是以字母A或B字母的客户:

SELECT * FROM 客户 WHERE 客户ID LIKE \'[!AB]%\'

找出客户ID以字母A、B、C、D中任何一个开头的客户:

SELECT * FROM 客户 WHERE 客户ID LIKE \'[A-D]%\'

可以利用NOT关键词进行反向操作,例如:

SELECT * FROM 客户 WHERE 公司名称 NOT LIKE \'%贸易%\'

找出所有非贸易公司。 


--  作者:狐哥
--  发布时间:2009/3/17 17:12:00
--  
哈,我将%加在单引号的外面去了.