'-------------------------------------------------------------------------------------------------------------------------
' ClassName:PublicDAL For SQL server
' Author:Eray
' Function:基本数据操作类,提供常用的数据库连接查询执行功能。
' History:2006-10建类,2007-2更新
' 注意:
' 1 如果用此类操作数据库。各业物数据库类的SQL语句参数不再为?,而是@userid的形式
' 2 各实体业务类的获取参数getUserParameter方法也改为Sql形式
'-------------------------------------------------------------------------------------------------------------------------
Imports System.Data
Imports eraysky.Utility
Imports System.Data.SqlClient
Imports System.Configuration
Public Class PublicSQLDAL
Public Shared ReadOnly constr1 As String = ConfigurationManager.ConnectionStrings.Item("erayskyConstr1").ToString
Public Shared ReadOnly constr2 As String = ConfigurationManager.ConnectionStrings.Item("erayskyConstr2").ToString
Public Shared ReadOnly constr3 As String = ConfigurationManager.ConnectionStrings.Item("erayskyConstr3").ToString
Public Shared ReadOnly Con1 As New SqlConnection(ConStr1)
Public Shared ReadOnly Con2 As New SqlConnection(ConStr2)
Public Shared ReadOnly Con3 As New SqlConnection(constr3)
'执行非查询语句,insert,update
Public Shared Function EXESQL(ByVal conn As SqlConnection, ByVal SQL As String, ByVal parms() As SqlParameter) As Integer
Dim result As Integer
If conn.State = ConnectionState.Closed Then conn.Open()
Dim cmd As SqlCommand = New SqlCommand
Try
PrepareCommand(cmd, conn, Nothing, CommandType.Text, SQL, parms)
result = cmd.ExecuteNonQuery()
cmd.Parameters.Clear()
Catch ex As Exception
result = -1
End Try
Return result
End Function
'执行查询语句,返回一个dataset
Public Shared Function GETDataSet(ByVal conn As SqlConnection, ByVal SQL As String, ByVal parms() As SqlParameter) As DataSet
Dim cmd As SqlCommand = New SqlCommand
Dim result As New DataSet
PrepareCommand(cmd, conn, Nothing, CommandType.Text, SQL, parms)
Try
Dim myadapter As SqlDataAdapter
myadapter = New SqlDataAdapter(cmd)
myadapter.Fill(result)
Catch ex As Exception
End Try
Return result
End Function
'执行查询语句,返回reader。
Public Shared Function GETReader(ByVal conn As SqlConnection, ByVal SQL As String, ByVal parms() As SqlParameter) As SqlDataReader
Dim cmd As SqlCommand = New SqlCommand
PrepareCommand(cmd, conn, Nothing, CommandType.Text, SQL, parms)
Dim result As SqlDataReader
Try
result = cmd.ExecuteReader()
Catch ex As Exception
result = Nothing
End Try
Return result
End Function
'执行查询语句,返回查询结果第一行,第一列值。
Public Shared Function GETScalar(ByVal conn As SqlConnection, ByVal SQL As String) As Object
Dim cmd As SqlCommand = New SqlCommand
PrepareCommand(cmd, conn, Nothing, CommandType.Text, SQL, Nothing)
Dim val As New Object
Try
val = cmd.ExecuteScalar()
Catch ex As Exception
End Try
Return val
End Function
'准备参数
Private Shared Sub PrepareCommand(ByVal cmd As SqlCommand, ByVal conn As SqlConnection, ByVal trans As SqlTransaction, ByVal cmdType As CommandType, ByVal cmdText As String, ByVal cmdParms() As SqlParameter)
If conn.State <> ConnectionState.Open Then
conn.Open()
End If
cmd.Connection = conn
cmd.CommandText = cmdText
If Not trans Is Nothing Then
cmd.Transaction = trans
End If
cmd.CommandType = cmdType
If Not cmdParms Is Nothing Then
Dim parm As SqlParameter
For Each parm In cmdParms
cmd.Parameters.Add(parm)
Next
End If
End Sub
End Class