VB.NET 数据库查询 [SQL字符串的生成]

2016-01-29 13:00 38 1 收藏

VB.NET 数据库查询 [SQL字符串的生成],VB.NET 数据库查询 [SQL字符串的生成]

【 tulaoshi.com - ASP.NET 】

---------SQL生成----------
任务是当用户以逗号来分隔查询的条件,的多条件查询,使用IN(x,y),但是当在数据库(ACCESS)对应的字段是字符型是就会出现错误,那是当然的!如果是IN('x','y')就没有问题!
下面的代码就是对字符串的操作,返回 'x','y'。

'-----接受要处理的字符串-------
Function Tool_disTest(ByVal TextBefore As String)
Dim TextAfter() As String
Dim intNum, intTextLen, k, i As Integer
intNum = 1
intTextLen = Len(TextBefore)
'--------计算有多少的查询条件--------
For i = 1 To intTextLen
If Mid(TextBefore, i, 1) = "," Then
intNum = intNum + 1
End If
Next
'-----------------------------------
ReDim TextAfter(intNum)
k = 1
'--------把每个条件放到数组里---------
For i = 1 To intTextLen
If Mid(TextBefore, i, 1) = "," Then
k += 1
Else
TextAfter(k) = TextAfter(k) & Mid(TextBefore, i, 1)
End If
Next
'----------------------
Dim strTemp As String
'--------为每一个条件加上''----------

For i = 1 To intNum
strTemp = TextAfter(i)
TextAfter(i) = "'" & strTemp & "'"
Next
'----------------------
strTemp = ""
'------添加分隔条件用的","------
For i = 1 To intNum
strTemp = strTemp & TextAfter(i) & ","
Next
'------------------
'------去除最后一个,------
strTemp = Mid(strTemp, 1, Len(strTemp) - 1)
'-------------------
Return strTemp
End Function

最后在SQLServer中又试了试,发现SQLServer查询的时候用IN(x,y)来查询字符型是OK的,(SQLServer就是比ACCESS强点,呵呵)
---------end-------

来源:http://www.tulaoshi.com/n/20160129/1488519.html

延伸阅读
在写SQL语句时,需要对不同类型的数据分别加上#号,""号等来表示,用以下函数,就可以实现操作的简化.不管是什么类型,只需用这个Q函数转化一下,不需动手加格式化符号,就OK了.实在是方便.本人一直在用它,实在是方便. Function Q(ByVal SqlVariable As Variant) As String'-----------------------------------------' ...
如下表:AggregationTableIdName1赵2钱1孙1李2周 如果想得到下图的聚合结果 IdName1赵孙李2钱周 利用SUM、AVG、COUNT、COUNT(*)、MAX 和 MIN是无法做到的。因为这些都是对数值的聚合。不过我们可以通过自定义函数的方式来解决这个问题。 1.首先建立测试表,并插入测试数据: 代码如下: create table AggregationTable(Id int, [Name] varcha...
标签: ASP
  '组合查询之核心:拼接字符串 '功能:定义查询条件,定义返回集,定义排序方式 '平台:Windows 2000 Server + IIS5.0 + SQL Server 2000 '语言:VBScript '作者:Cheery_Ke '***********Start************ '**************读取变量************* . . . seaLastUpdTime = Request("seaLastUpdTime1")&"-"&Re...
    许多人都对子查询(subqueries)的使用感到困惑,尤其对于嵌套子查询(即子查询中包含一个子查询)。现在,就让我们追本溯源地探究这个问题。 有两种子查询类型:标准和相关。标准子查询执行一次,结果反馈给父查询。相关子查询每行执行一次,由父查询找回。在本文中,我们将重点讨论嵌套子查询(nested subqueries)。 ...
问题说明: 有时需要在两个或三个数据库的表中,通过相关关键字,查询获取所需记录集,用一般的SQL查询语句是实现不了的,可通过ACCESS的跨库查询功能实现。   解决方法: 例如“装材类型”和“装材”两张表是在不同的数据库中的,具体查询方法,如下: @"Select * from 装材类型 as a INNER JOIN [;database=" + AppDomain.Curre...

经验教程

369

收藏

97
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部