VB、ASP 数据库操作工具类:DataTool,封装了常用的数据库操作

简介: 虽然现在基本不写VB和ASP了,但感觉这个工具类还是有点意义的!注释里添加了方法说明和示例,应该可以很容易看懂复制下面的源代码,在VB中,新建模块,粘贴代码,并将模块名称改为:DataTool,保存后即可使用。

虽然现在基本不写VB和ASP了,但感觉这个工具类还是有点意义的!
注释里添加了方法说明和示例,应该可以很容易看懂
复制下面的源代码,在VB中,新建模块,粘贴代码,并将模块名称改为:DataTool,保存后即可使用。

另外,想在VB中使用ADODB,需要引入相应的组件:Microsoft ActiveX Data Object 2.8 Library

 

  1  ' ==============================================================================================================================   
  2  '    
  3  '     VB、ASP 数据库操作工具类  DataTool v1.0   
  4  '    
  5  '     @Author : 网无忌   
  6  '     @Email  : netwild@163.com   
  7  '     @Blog   : http://blog.itplus.com.cn   
  8  '    
  9  '     ----------------------------------------------------------------------------------------------------------------------   
 10  '    
 11  '     说明:该工具类封装了对于数据库的常用操作   
 12  '           包括:建立数据库连接、断开数据库连接、查询数据、执行更新四个部分   
 13  '    
 14  '     ----------------------------------------------------------------------------------------------------------------------   
 15  '    
 16  '     方法:   
 17  '    
 18  '       ┌─────────────────┬───────┬────────────────────────────────┐   
 19  '       │  方法名称                        │返回值        │描述
 20  '       ├─────────────────┼───────┼────────────────────────────────┤   
 21  '       │1) DataTool.dbOpen                │Boolean       │建立数据库连接。 
 22  '       │                                  │              │若当前连接已建立,则使用现有连接
 23  '       │                                  │              │否则创建新的连接对象
 24  '       ├─────────────────┼───────┼────────────────────────────────┤   
 25  '       │2) DataTool.dbClose               │无            │关闭数据库连接。
 26  '       │                                  │              │若当前连接已关闭,则直接返回;
 27  '       │                                  │              │否则直接关闭连接,并销毁连接对象,释放内存
 28  '       │                                  │              │※ 建议在窗体注销或页面结束时手动调用该方法,将连接销毁
 29  '       ├─────────────────┼───────┼────────────────────────────────┤   
 30  '       │3) DataTool.find(sql)             │RecordSet     │执行简单的数据库查询操作,游标仅允许向前单向移动,结果集只读
 31  '       ├─────────────────┼───────┼────────────────────────────────┤   
 32  '       │4) DataTool.findDynamic(sql)      │RecordSet     │执行动态的数据库查询操作,游标允许双向移动,结果集只读
 33  '       ├─────────────────┼───────┼────────────────────────────────┤   
 34  '       │5) DataTool.findStatic(sql)       │RecordSet     │执行静态的数据库查询操作,游标允许双向移动,结果集只读
 35  '       ├─────────────────┼───────┼────────────────────────────────┤   
 36  '       │6) DataTool.findAndEdit(sql)      │RecordSet     │执行动态的数据库查询操作,游标允许双向移动,结果集可单条更新
 37  '       ├─────────────────┼───────┼────────────────────────────────┤   
 38  '       │6) DataTool.findAndEditBatch(sql) │RecordSet     │执行动态的数据库查询操作,游标允许双向移动,结果集可批量更新
 39  '       ├─────────────────┼───────┼────────────────────────────────┤   
 40  '       │7) DataTool.execute(sql)          │Boolean       │执行更新操作,例如:Insert、Update、Delete等
 41  '       ├─────────────────┼───────┼────────────────────────────────┤   
 42  '       │8) DataTool.getErr                │String        │返回错误描述信息
 43  '       └─────────────────┴───────┴────────────────────────────────┘   
 44  '    
 45  '     ----------------------------------------------------------------------------------------------------------------------   
 46  '    
 47  '     示例:   
 48  '    
 49  '        1) 简单的检索数据:   
 50  '    
 51  '            Set rs = DataTool.find("select * from tableName")   
 52  '            If rs Is Nothing Then   
 53  '                MsgBox "SQL语句不正确,检索失败!"   
 54  '            Else   
 55  '                MsgBox rs("fieldName")   
 56  '            End If   
 57  '    
 58  '            find方法返回的RecordSet对象支持:MoveNext、MoveLast方法;但不支持:MovePrevious、MoveFirst、recordCount等方法   
 59  '    
 60  '        2) 检索数据,并需要返回总记录数或反向移动游标:   
 61  '    
 62  '            Set rs = DataTool.findDynamic("select * from tableName")   
 63  '            If rs Is Nothing Then   
 64  '                MsgBox "SQL语句不正确,检索失败!"   
 65  '            Else   
 66  '                rs.MoveNext '下一条   
 67  '                rs.MovePrevious '上一条   
 68  '                rs.MoveLast '最后一条   
 69  '                rs.MoveFirst '第一条   
 70  '                MsgBox rs.RecordCount '总记录条数   
 71  '            End If   
 72  '    
 73  '            findDynamic方法返回的RecordSet对象支持:MoveNext、MoveLast、MovePrevious、MoveFirst、recordCount等方法   
 74  '    
 75  '        3) 检索数据,并需要进行修改:   
 76  '    
 77  '            Set rs = DataTool.findAndEdit("select * from tableName")   
 78  '            If rs Is Nothing Then   
 79  '                MsgBox "SQL语句不正确,检索失败!"   
 80  '            Else   
 81  '                rs.AddNew   
 82  '                rs("fieldName") = "新数据"   
 83  '                rs.Update   
 84  '            End If   
 85  '    
 86  '        4) 检索数据,并需要进行批量修改:   
 87  '    
 88  '            Set rs = DataTool.findAndEditBatch("select * from tableName")   
 89  '            If rs Is Nothing Then   
 90  '                MsgBox "SQL语句不正确,检索失败!"   
 91  '            Else   
 92  '                Do Until rs.Eof   
 93  '                    rs("click") = rs("click") + 1   
 94  '                    rs.MoveNext   
 95  '                Loop   
 96  '                rs.UpdateBatch   
 97  '            End If   
 98  '    
 99  '         5) 执行SQL语句直接对数据库进行添加操作   
100  '    
101  '            DataTool.execute "insert into table values(1,'新记录')"   
102  '    
103  '         6) 执行SQL语句直接对数据库进行修改操作   
104  '    
105  '            DataTool.execute "update table set fieldName='更新后的记录' where id=1"   
106  '    
107  '         7) 执行SQL语句直接对数据库进行删除操作   
108  '    
109  '            DataTool.execute "delete from table where id=1"   
110  '    
111  ' ==============================================================================================================================   
112    
113  Dim  conn  As  ADODB.Connection   
114  Dim  ErrDesc  As   String    
115  Dim  rs, rsad  As  ADODB.Recordset   
116    
117  ' 函数:打开数据库连接   
118  ' 参数:无   
119  ' 返回:Boolean 连接数据库成功:true;连接失败:false   
120  Function  dbOpen()  As   Boolean    
121       If  conn  Is   Nothing   Then    
122           Set  conn  =   New  ADODB.Connection   
123       End   If    
124       If  conn.State  Then    
125          ErrDesc  =   ""    
126          dbOpen  =   True    
127           Exit   Function    
128       End   If    
129       Dim  DataBasePath, DataBaseName, DataBaseUid, DataBasePwd  As   String    
130       Dim  connStr  As   String    
131       ' -----------------------------------------------------   
132      DataBasePath  =   " 192.168.0.1 "   ' 数据库服务器地址   
133      DataBaseName  =   " myDb "   ' 数据库名称   
134      DataBaseUid  =   " sa "   ' 登录名称   
135      DataBasePwd  =   ""   ' 登录密码   
136       ' -----------------------------------------------------   
137      connStr  =   " provider=SQLOLEDB;Data Source = "   &  DataBasePath  &   " ;database= "   &  DataBaseName  &   " ;uid= "   &  DataBaseUid  &   " ;pwd= "   &  DataBasePwd   
138      conn.ConnectionTimeout  =   3    
139       On   Error   Resume   Next    
140      conn.Open connStr   
141       If  Err  Then    
142          ErrDesc  =   " 数据库连接失败! "    
143          dbOpen  =   False    
144       Else    
145          ErrDesc  =   ""    
146          dbOpen  =   True    
147       End   If    
148  End Function    
149    
150  ' 函数:关闭数据库连接   
151  ' 参数:无   
152  ' 返回:无   
153  Function  dbClose()   
154       If  conn  Is   Nothing   Then   Exit   Function    
155       If  conn.State  =   0   Then   Exit   Function    
156      conn.Close   
157       Set  conn  =   Nothing    
158  End Function    
159    
160  ' 函数:执行查询(单向游标,只读)   
161  ' 参数:strSql String 要执行的SQL字符串   
162  ' 返回:RecordSet 或 Nothing(数据库连接失败、SQL语句有错误时)   
163  Function  find(ByVal strSql  As   String As  ADODB.Recordset   
164       If   Not  dbOpen  Then   Set  find  =   Nothing Exit   Function    
165       Dim  rsTmp  As  ADODB.Recordset   
166       On   Error   Resume   Next    
167       Set  rsTmp  =  conn.execute(strSql)   
168       If  Err  Then    
169          ErrDesc  =   " 检索数据库时发生错误! "    
170           Set  find  =   Nothing    
171       Else    
172          ErrDesc  =   ""    
173           Set  find  =  rsTmp   
174       End   If    
175  End Function    
176    
177  ' 函数:执行查询(动态游标,双向,只读)   
178  ' 参数:strSql String 要执行的SQL字符串   
179  ' 返回:RecordSet 或 Nothing(数据库连接失败、SQL语句有错误时)   
180  Function  findDynamic(ByVal strSql  As   String As  ADODB.Recordset   
181       If   Not  dbOpen  Then   Set  findDynamic  =   Nothing Exit   Function    
182       Dim  rsTmp  As   New  ADODB.Recordset   
183       On   Error   Resume   Next    
184      rsTmp.Open strSql, conn,  2 1    
185       If  Err  Then    
186          ErrDesc  =   " 检索数据库时发生错误! "    
187           Set  findDynamic  =   Nothing    
188       Else    
189          ErrDesc  =   ""    
190           Set  findDynamic  =  rsTmp   
191       End   If    
192  End Function    
193    
194  ' 函数:执行查询(静态游标,双向,只读)   
195  ' 参数:strSql String 要执行的SQL字符串   
196  ' 返回:RecordSet 或 Nothing(数据库连接失败、SQL语句有错误时)   
197  Function  findStatic(ByVal strSql  As   String As  ADODB.Recordset   
198       If   Not  dbOpen  Then   Set  findStatic  =   Nothing Exit   Function    
199       Dim  rsTmp  As   New  ADODB.Recordset   
200       On   Error   Resume   Next    
201      rsTmp.Open strSql, conn,  3 1    
202       If  Err  Then    
203          ErrDesc  =   " 检索数据库时发生错误! "    
204           Set  findStatic  =   Nothing    
205       Else    
206          ErrDesc  =   ""    
207           Set  findStatic  =  rsTmp   
208       End   If    
209  End Function    
210    
211  ' 函数:执行查询,并允许修改(动态游标,双向,可单条写入)   
212  ' 参数:strSql String 要执行的SQL字符串   
213  ' 返回:RecordSet 或 Nothing(数据库连接失败、SQL语句有错误时)   
214  Function  findAndEdit(ByVal strSql  As   String As  ADODB.Recordset   
215       If   Not  dbOpen  Then   Set  findAndEdit  =   Nothing Exit   Function    
216       Dim  rsTmp  As   New  ADODB.Recordset   
217       On   Error   Resume   Next    
218      rsTmp.Open strSql, conn,  2 3    
219       If  Err  Then    
220          ErrDesc  =   " 检索数据库时发生错误! "    
221           Set  findAndEdit  =   Nothing    
222       Else    
223          ErrDesc  =   ""    
224           Set  findAndEdit  =  rsTmp   
225       End   If    
226  End Function    
227    
228  ' 函数:执行查询,并允许修改(动态游标,双向,可批量写入)   
229  ' 参数:strSql String 要执行的SQL字符串   
230  ' 返回:RecordSet 或 Nothing(数据库连接失败、SQL语句有错误时)   
231  Function  findAndEditBatch(ByVal strSql  As   String As  ADODB.Recordset   
232       If   Not  dbOpen  Then   Set  findAndEditBatch  =   Nothing Exit   Function    
233       Dim  rsTmp  As   New  ADODB.Recordset   
234       On   Error   Resume   Next    
235      rsTmp.Open strSql, conn,  2 4    
236       If  Err  Then    
237          ErrDesc  =   " 检索数据库时发生错误! "    
238           Set  findAndEditBatch  =   Nothing    
239       Else    
240          ErrDesc  =   ""    
241           Set  findAndEditBatch  =  rsTmp   
242       End   If    
243  End Function    
244    
245  ' 函数:执行更新、删除及插入操作   
246  ' 参数:strSql String 要执行的SQL字符串   
247  ' 返回:Boolean 执行成功:true;执行失败:false   
248  Function   execute (ByVal strSql  As   String As   Boolean    
249       If   Not  dbOpen  Then   execute   =   False Exit   Function    
250       On   Error   Resume   Next    
251      conn.execute strSql   
252       If  Err  Then    
253          ErrDesc  =   " 执行数据库更新时发生错误! "    
254           execute   =   False    
255       Else    
256          ErrDesc  =   ""    
257           execute   =   True    
258       End   If    
259  End Function    
260    
261  ' 函数:返回错误描述信息   
262  ' 参数:无   
263  ' 返回:String   
264  Function  getErr()   
265      getErr  =  ErrDesc   
266  End Function    
267    

 



宠辱不惊,看庭前花开花落;去留无意,望天上云卷云舒
目录
相关文章
|
2月前
|
开发框架 Oracle 关系型数据库
ASP.NET实验室LIS系统源码 Oracle数据库
LIS是HIS的一个组成部分,通过与HIS的无缝连接可以共享HIS中的信息资源,使检验科能与门诊部、住院部、财务科和临床科室等全院各部门之间协同工作。 
37 4
|
2月前
|
前端开发 数据库连接 数据库
ASP.NETMVC数据库完整CRUD操作示例
ASP.NETMVC数据库完整CRUD操作示例
32 0
|
2月前
|
SQL druid Java
JDBC技术【分页查询、数据库连接池、应用程序分层、封装通用的BaseDao】(四)-全面详解(学习总结---从入门到深化)
JDBC技术【分页查询、数据库连接池、应用程序分层、封装通用的BaseDao】(四)-全面详解(学习总结---从入门到深化)
30 0
|
3月前
|
SQL Java 数据库连接
JDBC技术【分页查询、数据库连接池、应用程序分层、封装通用的BaseDao】(四)-全面详解(学习总结---从入门到深化)(下)
JDBC技术【分页查询、数据库连接池、应用程序分层、封装通用的BaseDao】(四)-全面详解(学习总结---从入门到深化)
350 1
|
3月前
|
SQL Java 数据库连接
JDBC技术【分页查询、数据库连接池、应用程序分层、封装通用的BaseDao】(四)-全面详解(学习总结---从入门到深化)(中)
JDBC技术【分页查询、数据库连接池、应用程序分层、封装通用的BaseDao】(四)-全面详解(学习总结---从入门到深化)
28 0
|
4月前
|
SQL 关系型数据库 MySQL
【Unity 3D】C#从mysql数据库中读取、封装SQL语句(附源码)
【Unity 3D】C#从mysql数据库中读取、封装SQL语句(附源码)
100 0
|
10月前
|
SQL 数据库 数据库管理
Qt操作Sqlite类封装,及命令行导入csv文件到Sqlite数据库
Qt操作Sqlite类封装,及命令行导入csv文件到Sqlite数据库
|
6月前
|
开发框架 .NET 数据库
asp.net企业费用报销管理信息系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio
asp.net 企业费用报销管理信息系统是一套完善的web设计管理系统,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为vs2010,数据库为sqlserver2008,使 用c#语言开发 应用技术:asp.net c#+sqlserver 开发工具:vs2010 +sqlserver
49 0
|
9月前
|
SQL 开发框架 运维
ASP.NET Core MVC 从入门到精通之数据库
ASP.NET Core MVC 从入门到精通之数据库
109 0
|
9月前
|
SQL 数据库连接 数据库
学生管理系统(VB)——连接数据库
学生管理系统(VB)——连接数据库

热门文章

最新文章