Public sqlconn As SqlClient.SqlConnection '全局变量,供整个应用程序使用 Sub open_conn() Dim sqlconnStr AsString
Try sqlconnStr ="workstation id="+ DbHost +";packet size=4096;data source = " sqlserver主机 " ;persist security info=true;initial catalog = dbName; user id = userName; password =userPwd sqlconn = New SqlClient.SqlConnection(sqlconnStr) Catch ex As Exception MsgBox(ex.ToString) EndTry ' MsgBox("数据库连接准备完成") End Sub
二 日志记录类
'系统日志类
'该类供应用各个模块调用,记录用户的登陆,退出,对数据库的操作,以及运行过程中系统的异常的记录。
'该类的成员变量为结构体loginfo的一个实例 PublicClass cLogWrite Private myLogInfo AsNew logInfo ’定义的一个结构体类型的公共变量,包含用户,日志类型,主机,和日‘志内容 PublicSub setUserId(ByVal myId AsString) myLogInfo.user_id = myId End Sub PublicSub setLogType(ByVal myType AsString) myLogInfo.log_type = myType End Sub PublicSub setLogContent(ByVal myContent AsString) myLogInfo.log_content = myContent End Sub PublicSub setLogMachine() myLogInfo.log_machine = System.Net.Dns.GetHostName End Sub PublicSub insertLog() Dim mysqlcomm As SqlClient.SqlCommand Dim mysql AsString mysql ="insert into wjb_log(log_datetime,log_type,user_id,log_content,log_machine) values (current_timestamp,'"+ myLogInfo.log_type +"','"+ myLogInfo.user_id +"','"+ myLogInfo.log_content +"','"+ myLogInfo.log_machine +"')" Try sqlconn.Open() mysqlcomm =New SqlClient.SqlCommand(mysql, sqlconn) mysqlcomm.ExecuteNonQuery() sqlconn.Close() Catch ex As Exception If sqlconn.State.Open =1Then sqlconn.Close() EndIf Throw ex Exit Sub EndTry End Sub
End Class
三 数据库操作
'该类为数据处理类,定义了所有对数据库的操作
'该类为所有功能模块提供对数据库数据的操作接口,select、insert、update、delete PublicClass cDataProcess '该方法为各功能模块 查询数据库中的数据提供结果集,输入select sql语句,和操作的数据库表,返回相应表的结果集 Dim myLogWrite AsNew cLogWrite PublicFunction dataSelect(ByVal strSql AsString, ByVal strTableName AsString) As DataSet Dim mydataset AsNew DataSet Dim mySqlAdapter As SqlClient.SqlDataAdapter
Throw ex EndTry Return mydataset End Function '该方法为各功能模块提供插入数据操作,参数为:insert语句和表名 PublicSub dataInsert(ByVal strSql AsString, ByVal strTableName AsString) Dim mysqlcomm As SqlClient.SqlCommand
Try sqlconn.Open() mysqlcomm =New SqlClient.SqlCommand(strSql, sqlconn) mysqlcomm.ExecuteNonQuery() sqlconn.Close() mysqlcomm =Nothing '该处记录日志信息,日志类型为:用户操作,用户内容包括insert语句,操作的表 myLogWrite.setLogType("用户操作") myLogWrite.setUserId(userStruc.userid) myLogWrite.setLogMachine() myLogWrite.setLogContent("用户向表 "+ strTableName +" 中插入数据") myLogWrite.insertLog() Catch ex As Exception If sqlconn.State.Open =1Then sqlconn.Close() EndIf
'该处记录日志信息,日志类型为操作异常 myLogWrite.setLogType("系统异常") myLogWrite.setUserId(userStruc.userid) myLogWrite.setLogMachine() myLogWrite.setLogContent(""+ escapeZifu(ex.Message, "'")) '用户向表 " + strTableName + " 中插入数据时发生异常: myLogWrite.insertLog() Throw ex EndTry End Sub '该方法为各功能模块提供修改数据操作,参数为:update语句和表名 PublicSub dataUpdate(ByVal strSql AsString, ByVal strTableName AsString) Dim mysqlcomm As SqlClient.SqlCommand