PubliSQLDAL公共數據庫訪問類 For SQLServer

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章