【发布时间】:2015-04-05 15:56:29
【问题描述】:
我想知道 vb.net 中 sql 通配符表达式的正确语法是什么
我想要的是当我的 dayVariable 匹配 Day 记录时选择我的记录,如果我的 dayVariable = "T" 那么我的 sql 表达式需要显示 Day 中所有包含 "T" 甚至 "TF" 字母的记录或“FT”,只要有一个“T”
我只尝试显示与“T”完全匹配的 Day 的记录
SELECT * FROM tblSomething WHERE Day LIKE '%" + dayVariable + "%'
SELECT * FROM tblSomething WHERE Day LIKE '%" & dayVariable & "%'
注意:我尝试像这样在 sql express 中构建查询:
SELECT * FROM tblSomething WHERE Day LIKE '%T%'
我实现了在 Day 列中显示所有带有“T”字母的记录。
这是我真正的 Vb.net
Private Function checkSecConflict(ByVal sTime As String, ByVal eTime As String, ByVal secID As String, ByVal day As String) As Boolean
If Connect.State = ConnectionState.Closed Then
Connect.Open()
End If
Dim cmd2 As New SqlCommand("Select * from tblSubjectOffer Where eTime > " & sTime & " AND sTime < " & eTime & " AND Day LIKE '%' + day + '%' AND SectionID = '" & secID & "'", Connect)
Dim dr As SqlDataReader = cmd2.ExecuteReader()
dr.Read()
If dr.HasRows Then
Return True
Else
Return False
End If
dr.Close()
cmd2.Dispose()
End Function
忽略我关于时间和 secID 的 where 语句,因为我发现我的关于 day 的通配符是真正的问题,我想是的,:)
提前感谢那些想帮助我解决问题的人,
【问题讨论】:
-
除了缺少 vb 中的开始和结束引号外,我没有发现问题。你有什么错误吗?在 sql 中进行连接也可以让您对查询进行参数化。
-
你的底层数据库是什么?
-
@T 我,我没有收到任何错误,但我的代码不符合我的要求。我对通配符的理解是否正确,只要符合 where 语句或特定字母或字符串,它就会显示所有记录
-
我使用 sql express 作为我的数据库,@GordonLinoff
-
能否展示您在发出此查询时使用的真实 vb.net 代码?