기관실 재 구축 의 SqlHelper

기관실 요금 이 시 작 된 지 얼마 되 지 않 았 습 니 다. 처음에 도 한 동안 두 드 렸 는데 D 층 이 데이터 베 이 스 를 방문 하 는 데 대량의 중복 코드 가 나 타 났 고 모든 D 층 류 가 필요 합 니 다.
데이터베이스 에 단독으로 접근 하 다.문 제 를 발견 하면 우 리 는 문 제 를 해결 하고 선인 의 블 로 그 를 찾 아 보 며 SqlHelper 류 를 발 견 했 습 니 다. 활용 해 보 세 요. 과연 사용 하기 좋 습 니 다.
중복 되 는 코드 를 쓰 는 데 많은 시간 을 보 냈 다.
    SQL 의 몇 가지 방법 에 대해 간단하게 소개 합 니 다.
    1.SQLHelper.ExecuteNonQuery    역할: 실행 문
    2. SQLHelper.ExecuteScalar       역할: 단일 필드 값 문장 가 져 오기
    3. SQLHelper.ExecuteReader      역할: 결과 집합 문 구 를 가 져 오 는 데 사용 합 니 다.
    ....
    제 가 쓴 SqlHelper 클래스 (ChargeSqlHelperDAL)
    
Public Class ChargeSqlHelperDAL
    Private ReadOnly sqlConnection As String = sqlConnection

    '''   
    '''       ,     
    '''   
    '''      Sql    
    '''   Sql       
    ''' dataTable,        
    '''  
    Public Function ExecuteDataTable(ByVal cmdText As String, ByVal cmdType As CommandType, ByVal sqlParams As SqlParameter()) As DataTable
        Using conn As New SqlConnection(sqlConnection)
            Dim cmd As SqlCommand = conn.CreateCommand()
            Dim adp As SqlDataAdapter
            Dim ds As New DataSet
            cmd.CommandText = cmdText                                       '       
            cmd.CommandType = cmdType                                        '     ,  cmdText
            cmd.Parameters.AddRange(sqlParams)
            adp = New SqlDataAdapter(cmd)
            Try
                conn.Open()                                                 '    
                adp.Fill(ds)
                Return ds.Tables(0)                                         '  DateTable
            Catch ex As Exception                                           '    
                Return Nothing                                              '  nothing
                Throw ex
            End Try
        End Using
    End Function


    '''   
    '''       ,     
    '''   
    '''      Sql    
    '''   Sql       
    ''' dataTable,        
    '''   
    Public Function ExecuteDataTable(ByVal cmdText As String, ByVal cmdType As CommandType) As DataTable
        Using conn As New SqlConnection(sqlConnection)
            Dim cmd As SqlCommand = conn.CreateCommand()
            Dim adp As SqlDataAdapter
            Dim ds As New DataSet
            cmd.CommandText = cmdText                            '       
            cmd.CommandType = cmdType                            '     ,  cmdText
            adp = New SqlDataAdapter(cmd)
            Try
                conn.Open()                                      '    
                adp.Fill(ds)
                Return ds.Tables(0)                              '  DateTable
            Catch ex As Exception                                '    
                Return Nothing                                   '  nothing
                Throw ex
            End Try
        End Using
    End Function

    '''   
    ''' ExecuteNonQuery  ,           ,     
    '''   
    '''      Sql    
    '''   Sql       
    '''     ,              
    ''' integer,        
    '''   
    Public Function ExecuteNonQuery(ByVal cmdText As String, ByVal cmdType As CommandType, ByVal sqlParams As SqlParameter()) As Integer
        Using conn As New SqlConnection(sqlConnection)
            Dim cmd As SqlCommand = conn.CreateCommand()
            cmd.CommandText = cmdText                              '       
            cmd.CommandType = cmdType                               '     ,  cmdText
            cmd.Parameters.AddRange(sqlParams)
            Try
                conn.Open()                                         '    
                Return cmd.ExecuteNonQuery()                        '                
            Catch ex As Exception
                Return 0                                            '    ,  0
                Throw ex
            End Try
        End Using
    End Function

    '''   
    ''' ExecuteNonQuery  ,           ,     
    '''   
    '''      Sql    
    '''   Sql       
    ''' integer,        
    '''   
    Public Function ExecuteNonQuery(ByVal cmdText As String, ByVal cmdType As CommandType) As Integer
        Using conn As New SqlConnection(sqlConnection)             '     ,              .  
            Dim cmd As SqlCommand = conn.CreateCommand()
            cmd.CommandText = cmdText                               '       
            cmd.CommandType = cmdType                                '     ,  cmdText
            Try
                conn.Open()                                         '    
                Return cmd.ExecuteNonQuery()                        '                
            Catch ex As Exception
                Return 0                                            '    ,  0
                Throw ex
            End Try
        End Using
    End Function
End Class
    
    사용자 가 컴퓨터 에 접속 하 는 것 을 예 로 들 면 - 호출 코드
    
Public Function SelectUser(enUser As ChargeEntity.ChargeT_UsersEntity) As DataTable
        Dim helper As New ChargeSqlHelperDAL      '   ChargeSqlHelperDAL
        Dim dt As New DataTable                   '  DataTable
        Dim cmdText As String = "select * from T_Users where userName=@userName and password=@password"           '         
        Dim sqlParams As SqlParameter() = {New SqlParameter("@userName", enUser.userName And "@password", enUser.password)}    '  
        dt = helper.ExecuteDataTable(cmdText, CommandType.Text, sqlParams)
        Return dt
    End Function
End Class

개인 소결
    이 클래스 를 사용 하 는 것 은 사용자 가 데이터 베 이 스 를 더욱 편리 하고 안전하게 조작 할 수 있 도록 하 는 것 입 니 다. SQLHelper 클래스 를 제외 한 모든 클래스 는 인용 하지 않 습 니 다.
데이터 베 이 스 를 조작 하 는 모든 종류 와 문 구 를 사용 하면 데이터 베 이 스 를 연결 하고 닫 는 문 제 를 걱정 할 필요 가 없다.SqlHelper 는 D 층 을 데이터베이스 에 연결 하 는 중복 코드 입 니 다.
SqlHelper 류 로 추상 화 되 어 코드 의 재 활용 에 유리 합 니 다.
    많은 사람들 이 이 블 로 그 를 썼 지만 저 는 자신의 성장 과 수확 을 기록 하고 싶 습 니 다.현재 의 이 해 는 바로 이것들 이다.
학습 을 깊이 있 게 하고 끊임없이 생각 하 며 더욱 깊이 이해 하 다.

좋은 웹페이지 즐겨찾기