很明显局部的开销小啊 有一种建议能用局部的最好用局部变量 dim cnn as new ADO.connection dim strCnn as string strCnn="DSN=数据源名;User Id=sa;Password=" cnn.ConnectionString=strCnn cnn.CursorLocation=adUseClient(使用客户端的游标) cnn.Open
看你局域网中用户的数量,如果用户数量不多(不到100),程序在局域网运行,在模块里用PUBLIC 定义一个全局的连接,是没有问题的!而且代码简单,方便!在vb.net中的连接是用数据时连接,不用时关闭!适合于用户很多和在网上运行的程序总之,两者各有利弊!我是定义一个全局的连接的Public adoCN As New ADODB.Connection '定义数据库的连接存放数据和代码Public SqlCommand As New ADODB.Command '定义 SQL 命令Dim adoDateTime As New ADODB.Recordset '获取 NT-SERVER 时间'*********************************************************************** '* 功能:与 SQL SERVER 数据库建立连接并取出服务器时间 '*********************************************************************** Public Function OpenConnection() As String '打开数据库 On Error GoTo SQLConErr With adoCN .CursorLocation = adUseClient .Provider = "sqloledb" .Properties("Data Source").Value = cNtServerName .Properties("Initial Catalog").Value = cDatabaseName .Properties("User ID") = cSQLUserName .Properties("Password") = cSQLPassword .Properties("prompt") = adPromptNever .ConnectionTimeout = 15 ‘可以改这个时间 .Open
If .State = adStateOpen Then adoDateTime.Open "select getdate()", adoCN, adOpenStatic, adLockOptimistic cServerDate = Format(adoDateTime(0), "yyyy-mm-dd") cServertime = Mid(adoDateTime(0), 10) Else MsgBox "数据库连接失败,请找系统管理员进行检查 !", 16, cProgramName End End If End With
SqlCommand.ActiveConnection = adoCN SqlCommand.CommandType = adCmdText Exit Function SQLConErr: Select Case Err.Number Case -2147467259 MsgBox "找不到指定的SQL Server服务器或者数据库不存在,请重新设置!", vbExclamation F_SetSystem.Show 1 Case -2147217843 MsgBox "指定的SQL Server数据库用户不存在或口令错误,请重新设置!", vbExclamation F_SetSystem.Show 1 Case Else MsgBox "数据环境连接失败,请找系统管理员进行检查 !", 16, cProgramName End Select OpenConnection End Function
一次连接,到处使用!
有一种建议能用局部的最好用局部变量
dim cnn as new ADO.connection
dim strCnn as string
strCnn="DSN=数据源名;User Id=sa;Password="
cnn.ConnectionString=strCnn
cnn.CursorLocation=adUseClient(使用客户端的游标)
cnn.Open
SQLserver有连接许可数,最好用1个,程序运行连接。每个DataSet用时在连接,系统资源开销较大。
'* 功能:与 SQL SERVER 数据库建立连接并取出服务器时间
'***********************************************************************
Public Function OpenConnection() As String '打开数据库
On Error GoTo SQLConErr
With adoCN
.CursorLocation = adUseClient
.Provider = "sqloledb"
.Properties("Data Source").Value = cNtServerName
.Properties("Initial Catalog").Value = cDatabaseName
.Properties("User ID") = cSQLUserName
.Properties("Password") = cSQLPassword
.Properties("prompt") = adPromptNever
.ConnectionTimeout = 15 ‘可以改这个时间
.Open
If .State = adStateOpen Then
adoDateTime.Open "select getdate()", adoCN, adOpenStatic, adLockOptimistic
cServerDate = Format(adoDateTime(0), "yyyy-mm-dd")
cServertime = Mid(adoDateTime(0), 10)
Else
MsgBox "数据库连接失败,请找系统管理员进行检查 !", 16, cProgramName
End
End If
End With
SqlCommand.ActiveConnection = adoCN
SqlCommand.CommandType = adCmdText
Exit Function
SQLConErr:
Select Case Err.Number
Case -2147467259
MsgBox "找不到指定的SQL Server服务器或者数据库不存在,请重新设置!", vbExclamation
F_SetSystem.Show 1
Case -2147217843
MsgBox "指定的SQL Server数据库用户不存在或口令错误,请重新设置!", vbExclamation
F_SetSystem.Show 1
Case Else
MsgBox "数据环境连接失败,请找系统管理员进行检查 !", 16, cProgramName
End Select
OpenConnection
End Function