当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > VB.NET 数据库查询 [SQL字符串的生成]

ASP.NET
用 Asp.Net 建立一个在线 RSS 新闻聚合器的方法
关于前台调用后台事件__doPostBack函数
Bin 和 App_Code 文件夹介绍
.NET 2.0 的压缩功能代码
解决Visual Studio 2005 无法显示设计视图的方法
asp.net(c#)两种随机数的算法,可用抽考题
asp.net下url传递中文的解决方案
XmlReader 读取器读取内存流 MemoryStream 的注意事项
asp.net下创建、查询、修改带名称空间的 XML 文件的例子
使用.NET存储XML数据的方法
XslTransform.Transform将结果输出到字符串里的方法
安装 VS2005 SP1 有关问题的解决办法
asp.net下中文验证码,免费开源代码
自定义应用程序配置文件(app.config)
asp.net下使用DIME协议上传文件
动态改变ASP.net页面标题和动态指定页面样式表的方法
WEB上调用HttpWebRequest奇怪问题的解决方法
HTTP协议下用Web Service上传大文件的解决方案
asp.net下Response.ContentType类型汇总
ASP.NET User Control使用技巧一则

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 196 ::
收藏到网摘: n/a

---------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-------