zoukankan      html  css  js  c++  java
  • 用于对数据库进行操作的类库经验的总结


    //声明:引用或转载时请保留作者姓名.

    '****************************************************
    '
    Writer: furenjun  2006.5.10
    '
    ****************************************************
    Imports System.IO
    Imports System.Data
    Imports System.Data.SqlClient
    Imports System.Text
    Imports ADOX
    Imports System.Data.OleDb
    Imports ADODB


    Public Class C_Mrfu_DBHR
        
    'Private SqlCon As SqlConnection = New _
        'SqlConnection("data source=FURENJUN;initial catalog=CarDriManage;user id=sa;password=sa")
        '定义一个数据连接对象,并初始化
        'Dim olecon2 As OleDbConnection = New OleDbConnection()
        'Dim str1 As String = "d:\mrfu\jsdb.mdb"
        'olecon2.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source='" & str1 & "'"

        
    '''Build a connection string
        'Dim connectionString As String = ""
        '    connectionString = "Provider=SQLOLEDB;"
        '    connectionString += "Server=FURENJUN;Database=pubs;"
        '    connectionString += "User ID=sa;Password=sa"

        
    'SqlCon在启动窗体中对其实例化,并为其赋初值
        '''Create and open a connection using the connection string
        '    adoOleDbConnection = New OleDbConnection(connectionString)

        
    '''Build a SQL statement to query the datasource
        'Dim sqlString As String = ""
        '    sqlString = "Select * From authors where state='TN'  "

        
    '''Retrieve the data using the SQL statement and existing connection
        '    adoOleDbDataAdapter = New OleDbDataAdapter(sqlString, adoOleDbConnection)

        
    '''Create a instance of a Dataset
        '    dataSet = New DataSet()

        
    '''Fill the dataset with the data retrieved.  The name of the table
        '''in the dataset must be the same as the table name in the report.
        '    adoOleDbDataAdapter.Fill(dataSet, "authors")


        
    Private myDataSet As DataSet
        
    '定义一个数据集对象
        Private mySqlDataAdapter As SqlDataAdapter
        
    '定义一个数据适配器对象
        Private myOleDBDataAdapter As OleDbDataAdapter
        
    '定义一个数据适配器对象
        'Private mySqlCon As SqlConnection
        '定义一个数据库连接对象
        Private SqlCmd As SqlCommand
        
    '定义一个sql数据命令对象


        
    Dim SqlServerName_Str_Pub As String          '服务器名
        Dim SqlUserName_Str_Pub As String            '用户登录名
        Dim SqlUserPassWord_Str_Pub As String        '密码
        Dim SqlInitDB_Str_Pub As String              '默认数据库
        Dim SqlLoginTimeout_Str_Pub As String        '登录超时
        Dim SqlConnectionTimeout_Str_Pub As String   '连接超时

        
    Dim m_sRunMsg As String = ""

        
    Public Property GsRunMsg() As String
            
    Get
                
    ' The Get property procedure is called when the value
                ' of a property is retrieved. 
                Return m_sRunMsg
            
    End Get
            
    Set(ByVal Value As String)
                
    ' The Set property procedure is called when the value 
                ' of a property is modified. 
                ' The value to be assigned is passed in the argument to Set. 
                m_sRunMsg = Value
            
    End Set
        
    End Property



        
    '*************************************************************************************************************************************************'
        '1.数据库连接操作(SqlCon and OleDBCon )
        '*************************************************************************************************************************************************'


        
    Private Function INI_Fun_Pub(ByVal SectionName As StringByVal KeyName As StringByVal DefaultStr As StringByVal FileName As StringAs String
            
    Dim FileLine_Str_Dim As String
            
    Dim SectionName_Str_Dim As String
            
    Dim FileLineNum_Str_Dim As Double
            
    Dim i As Integer
            
    Dim KeyName_Str_Dim As String
            
    Dim Information_Str_Dim As String
            
    Dim FileExist_Str_Dim As String
            
    Try
                
    ''''''''''''''''''''''''''''''查询文件是否存在
                FileExist_Str_Dim = Dir(FileName)
                
    If FileExist_Str_Dim = "" Then
                    INI_Fun_Pub 
    = DefaultStr
                
    Else
                    INI_Fun_Pub 
    = DefaultStr
                    
    FileOpen(1, FileName, OpenMode.Input)
                    
    While Not EOF(1)
                        FileLine_Str_Dim 
    = Trim(LineInput(1))
                        
    If FileLine_Str_Dim <> "" Then
                            
    '''''''''''''''''''''''''''''''判断是不是块索引部分
                            If Microsoft.VisualBasic.Left(Trim(FileLine_Str_Dim), 1= "[" Then
    EstimateSect:
                                SectionName_Str_Dim 
    = Trim(Mid(Trim(FileLine_Str_Dim), 2Len(Trim(FileLine_Str_Dim)) - 2))
                                
    If Trim(SectionName_Str_Dim.ToUpper()) = Trim(SectionName.ToUpper()) Then
                                    
    While Not EOF(1)
                                        FileLine_Str_Dim 
    = Trim(LineInput(1))
                                        
    ''''''''''''''''''''''''''''进入块索引,引入下一句
                                        If Microsoft.VisualBasic.Left(Trim(FileLine_Str_Dim), 1= "[" Then
                                            
    '''''''''''''''''''''''如果还是块索引
                                            GoTo EstimateSect
                                        
    Else
                                            FileLineNum_Str_Dim 
    = Len(Trim(FileLine_Str_Dim))
                                            
    For i = 1 To FileLineNum_Str_Dim
                                                KeyName_Str_Dim 
    = Trim(Microsoft.VisualBasic.Left(FileLine_Str_Dim, i))
                                                
    If Microsoft.VisualBasic.Right(Trim(KeyName_Str_Dim), 1= "=" Then
                                                    KeyName_Str_Dim 
    = Trim(Microsoft.VisualBasic.Left(Trim(KeyName_Str_Dim), Len(Trim(KeyName_Str_Dim)) - 1))
                                                    Information_Str_Dim 
    = Trim(Microsoft.VisualBasic.Right(Trim(FileLine_Str_Dim), Len(Trim(FileLine_Str_Dim)) - i))
                                                    
    If Trim(KeyName.ToUpper()) = Trim(KeyName_Str_Dim.ToUpper()) Then
                                                        INI_Fun_Pub 
    = Trim(Information_Str_Dim)
                                                        
    FileClose(1)
                                                        
    Exit Function
                                                    
    Else
                                                        
    Exit For
                                                    
    End If
                                                
    End If
                                            
    Next
                                        
    End If
                                    
    End While
                                
    End If
                            
    End If
                        
    End If
                    
    End While
                    
    FileClose(1)
                
    End If
            
    Catch
                m_sRunMsg 
    = (Err.Description)
            
    End Try
        
    End Function


        
    Private Sub ReadIniFile()
            
    '*=====读INI=====*
            Try
                
    Dim MyPath As String
                MyPath 
    = CurDir()
                
    'MsgBox(MyPath)
                Dim str1, str2, str3, str4, str5, str6 As String

                SqlServerName_Str_Pub 
    = INI_Fun_Pub("SQLSERVER""MrFuServerName""TestServer", MyPath & "\LinkMsSql.INI")
                SqlUserName_Str_Pub 
    = INI_Fun_Pub("SQLSERVER""MrFuUserName""sa", MyPath & "\LinkMsSql.ini")
                SqlUserPassWord_Str_Pub 
    = INI_Fun_Pub("SQLSERVER""MrFuUserPassword""athena", MyPath & "\LinkMsSql.ini")
                SqlInitDB_Str_Pub 
    = INI_Fun_Pub("SQLSERVER""MrFuInitDB""AttSysDB", MyPath & "\LinkMsSql.ini")
                SqlLoginTimeout_Str_Pub 
    = INI_Fun_Pub("SQLSERVER""LoginTimeout""20", MyPath & "\LinkMsSql.ini")
                SqlConnectionTimeout_Str_Pub 
    = INI_Fun_Pub("SQLSERVER""ConnectionTimeout""30", MyPath & "\LinkMsSql.ini")
                
    'str1 = INI_Fun_Pub("SQLSERVER", "ServerName", "TestServer", MyPath & "\LinkMsSql.INI")
                'str2 = INI_Fun_Pub("SQLSERVER", "UserName", "sa", MyPath & "\LinkMsSql.ini")
                'str3 = INI_Fun_Pub("SQLSERVER", "UserPassword", "athena", MyPath & "\LinkMsSql.ini")
                'str4 = INI_Fun_Pub("SQLSERVER", "InitDB", "AttSysDB", MyPath & "\LinkMsSql.ini")
                'str5 = INI_Fun_Pub("SQLSERVER", "LoginTimeout", "20", MyPath & "\LinkMsSql.ini")
                'str6 = INI_Fun_Pub("SQLSERVER", "ConnectionTimeout", "30", MyPath & "\LinkMsSql.ini")
                'MsgBox(str1 + str2 + str3 + str4 + str5 + str6)

            
    Catch
                m_sRunMsg 
    = ("ReadIniFile 错误号: " & Err.Number.ToString & "  错误描述 : " & Err.Description.ToString)

            
    End Try
        
    End Sub


        
    Public Function SQL_Con() As SqlClient.SqlConnection
            
    Try
                ReadIniFile()

                
    ' Dim objSqlConnection As SqlConnection = New _
                ' SqlConnection("data source=furenjun;initial catalog=CarDriManage;user id=sa;password=sa")

                
    Dim SqlCnn As SqlConnection = New SqlConnection("data source = " & SqlServerName_Str_Pub _
                               
    & ";user id=" & SqlUserName_Str_Pub _
                              
    & ";password=" & SqlUserPassWord_Str_Pub _
                             
    & ";initial catalog = " & SqlInitDB_Str_Pub)
                SQL_Con 
    = SqlCnn

            
    Catch
                m_sRunMsg 
    = ("SQL_Con 错误号: " & Err.Number.ToString & "  错误描述 : " & Err.Description.ToString)

            
    End Try
        
    End Function



        
    Public Function MyOleCon() As OleDb.OleDbConnection
            
    Dim adoOleDbConnection As OleDbConnection
            
    Try
                ReadIniFile()


                
    Dim connectionString As String = ""
                connectionString 
    = "Provider=SQLOLEDB;Server =" & Trim(SqlServerName_Str_Pub) & ";Database=" & Trim(SqlInitDB_Str_Pub) & ";User ID=" & Trim(SqlUserName_Str_Pub) & ";Password=" & Trim(SqlUserPassWord_Str_Pub)
                
    '最好不要采用单行写再相加
                ''Build a connection string
                'Dim connectionString As String = ""
                'connectionString = "Provider=SQLOLEDB;"
                'connectionString += "Server=FURENJUN;Database=CarDriManage;"
                'connectionString += "User ID=sa;Password=sa"

                adoOleDbConnection 
    = New OleDbConnection(connectionString)


            
    Catch
                m_sRunMsg 
    = (" MyOleCon 错误号: " & Err.Number.ToString & "  错误描述 : " & Err.Description.ToString)

            
    End Try
            
    Return adoOleDbConnection

        
    End Function



        
    Public Function MyOleConStr() As String
            
    Dim connectionString As String = ""
            
    Try
                ReadIniFile()

                connectionString 
    = "Provider=SQLOLEDB; Server=" & Trim(SqlServerName_Str_Pub) & "; Database=" & Trim(SqlInitDB_Str_Pub) & "; User ID=" & Trim(SqlUserName_Str_Pub) & "; Password=" & Trim(SqlUserPassWord_Str_Pub)
            
    Catch
                m_sRunMsg 
    = (" MyOleConStr 错误号: " & Err.Number.ToString & "  错误描述 : " & Err.Description.ToString)

            
    End Try
            
    Return connectionString

        
    End Function



        
    Public Function DataTransition_ADODBCon() As ADODB.Connection
            
    Dim conn As New ADODB.Connection
            
    Try
                ReadIniFile()
                conn.ConnectionString 
    = "Provider=SQLOLEDB;Data Source='" & Trim(SqlServerName_Str_Pub) & " ';Initial Catalog='" & Trim(SqlInitDB_Str_Pub) & "';Integrated Security=SSPI;" & " ," & " '" & Trim(SqlUserName_Str_Pub) & "" & " , " & " '" & Trim(SqlUserPassWord_Str_Pub) & "'" & "" & " -1"
            
    Catch
                m_sRunMsg 
    = (" MyOleConStr 错误号: " & Err.Number.ToString & "  错误描述 : " & Err.Description.ToString)
            
    End Try
            DataTransition_ADODBCon 
    = conn
        
    End Function




        
    Public Function SqlConStr() As String
            
    Dim sqlconstring As String = ""
            
    Try
                ReadIniFile()

                sqlconstring 
    = "data source=" & Trim(SqlServerName_Str_Pub) & "; initial catalog=" & Trim(SqlInitDB_Str_Pub) & ";  persist security info=true; user id=" & Trim(SqlUserName_Str_Pub) & "; Password=" & Trim(SqlUserPassWord_Str_Pub) & ";  workstation id=" & Trim(SqlServerName_Str_Pub) & "; packet size=4096"
            
    Catch
                m_sRunMsg 
    = ("错误号: " & Err.Number.ToString & "  错误描述 : " & Err.Description.ToString)
            
    End Try
            
    Return sqlconstring
        
    End Function


        
    Public Function SqlConStr2() As String
            
    Dim sqlconstring As String = ""
            
    Try
                ReadIniFile()

                sqlconstring 
    = Trim(SqlServerName_Str_Pub) & "\" & Trim(SqlInitDB_Str_Pub) & "\" & Trim(SqlUserName_Str_Pub) & "\" & Trim(SqlUserPassWord_Str_Pub)
            
    Catch
                m_sRunMsg 
    = ("SqlConStr  错误号: " & Err.Number.ToString & "  错误描述 : " & Err.Description.ToString)
            
    End Try
            
    Return sqlconstring
        
    End Function



        
    '*************************************************************************************************************************************************'
        '1.2.连接ACCESS数据库
        '*************************************************************************************************************************************************'
        Public Function Access_OleDBCon(ByVal DBPath As StringAs OleDbConnection
            
    Dim OleCon As OleDbConnection = New OleDbConnection
            
    'Dim DBPath As String = "d:\mrfu\DriverManager.mdb"
            OleCon.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source='" & DBPath & "'"
            
    Return OleCon

        
    End Function


        
    '*************************************************************************************************************************************************'
        '对ACCESS数据库进行操作
        '*************************************************************************************************************************************************'

        
    Public Function Access_ADODBConNeedPassword(ByVal DBPathAndDatabaseName As StringByVal UserID As StringByVal Password As StringByVal SqlStr As StringAs String

            
    Dim FlagStr As String = "0"
            
    Dim ConnectionString As String = ""


            ConnectionString 
    = "DRIVER={Microsoft Access Driver (*.mdb)};" & _
                               
    "DBQ=" & DBPathAndDatabaseName & ";DefaultDir=;" & _
                               
    "UID=" & UserID & ";" & _
                               
    "PWD=" & Password & ";"
            
    Dim Adocon As ADODB.Connection
            
    Try


                Adocon 
    = New ADODB.Connection

                Adocon.ConnectionString 
    = ConnectionString
                Adocon.ConnectionTimeout 
    = 120
                Adocon.CommandTimeout 
    = 160
                Adocon.Open()


                Adocon.Execute(SqlStr)

                Adocon.Close()

                Adocon 
    = Nothing
                FlagStr 
    = "1"

            
    Catch
                
    If Adocon.State = ConnectionState.Open Then
                    Adocon.Close()
                
    End If
                FlagStr 
    = "0"
                m_sRunMsg 
    = (Err.Description.ToString) ', MsgBoxStyle.Exclamation, "错误提示")

            
    End Try

            
    Return FlagStr


        
    End Function


        
    '*************************************************************************************************************************************************'
        '访问ACCESS数据库,并返回小批量数据
        '*************************************************************************************************************************************************'
        Public Function Access_GetDataReturnArrayList(ByVal DBPathAndDatabaseName As StringByVal UserID As StringByVal Password As StringByVal SqlStr As StringByVal TableName As StringByVal FiledsName As StringAs ArrayList

            
    Dim TempArrayList As ArrayList
            TempArrayList 
    = Nothing
            
    Dim rs As ADODB.Recordset
            
    Dim ConnectionString As String = ""
            ConnectionString 
    = "DRIVER={Microsoft Access Driver (*.mdb)};" & _
                               
    "DBQ=" & DBPathAndDatabaseName & ";DefaultDir=;" & _
                               
    "UID=" & UserID & ";" & _
                               
    "PWD=" & Password & ";"
            
    Dim Adocon As ADODB.Connection
            
    Try
                Adocon 
    = New ADODB.Connection
                Adocon.ConnectionString 
    = ConnectionString
                Adocon.ConnectionTimeout 
    = 120
                Adocon.CommandTimeout 
    = 160
                Adocon.Open()
                rs 
    = New ADODB.Recordset
                rs.Open(SqlStr, Adocon, ADODB.CursorTypeEnum.adOpenKeyset, ADODB.LockTypeEnum.adLockOptimistic, 
    CInt(ADODB.CommandTypeEnum.adCmdText))

                TempArrayList 
    = New ArrayList

                
    '如果记录集为空,输出一个错误信息
                If (rs.BOF Or rs.EOF) Then
                    Adocon.Close()
                    Adocon 
    = Nothing
                    rs 
    = Nothing

                    m_sRunMsg 
    = ("没有找到任何记录,请检查你的" & TableName & " 表 "', MsgBoxStyle.Information, "系统消息")

                    
    Return TempArrayList
                
    End If
                
    '循环存入数据

                
    While (Not rs.EOF)
                    TempArrayList.Add(rs.Fields(FiledsName).Value.ToString())

                    rs.MoveNext()

                
    End While
                Adocon.Close()

                Adocon 
    = Nothing
                rs 
    = Nothing

            
    Catch
                
    If Adocon.State = ConnectionState.Open Then
                    Adocon.Close()
                
    End If

                m_sRunMsg 
    = (Err.Description.ToString) ', MsgBoxStyle.Exclamation, "错误提示")

            
    End Try


            
    Return TempArrayList


        
    End Function


        
    '*************************************************************************************************************************************************'
        '访问ACCESS数据库,并返回数据集
        '*************************************************************************************************************************************************'
        Public Function GetDataFromAccess(ByVal DBPathAndDatabaseName As StringByVal UserID As StringByVal Password As StringByVal SqlStr As StringByVal TableName As StringAs DataSet
            
    Dim custDA As OleDbDataAdapter = New OleDbDataAdapter
            
    Dim custDS As DataSet = New DataSet

            
    Dim rs As ADODB.Recordset
            
    Dim ConnectionString As String = ""
            ConnectionString 
    = "DRIVER={Microsoft Access Driver (*.mdb)};" & _
                               
    "DBQ=" & DBPathAndDatabaseName & ";DefaultDir=;" & _
                               
    "UID=" & UserID & ";" & _
                               
    "PWD=" & Password & ";"
            
    Dim Adocon As ADODB.Connection
            
    Try
                Adocon 
    = New ADODB.Connection
                Adocon.ConnectionString 
    = ConnectionString
                Adocon.ConnectionTimeout 
    = 120
                Adocon.CommandTimeout 
    = 160
                Adocon.Open()
                rs 
    = New ADODB.Recordset
                rs.Open(SqlStr, Adocon, ADODB.CursorTypeEnum.adOpenKeyset, ADODB.LockTypeEnum.adLockOptimistic, 
    CInt(ADODB.CommandTypeEnum.adCmdText))

                
    '如果记录集为空,输出一个错误信息
                If (rs.BOF Or rs.EOF) Then
                    Adocon.Close()
                    Adocon 
    = Nothing
                    rs 
    = Nothing

                    m_sRunMsg 
    = ("没有找到任何记录,请检查你的" & TableName & " 表 "', MsgBoxStyle.Information, "系统消息")

                    
    Return custDS
                
    End If
                
    '存入dataset数据


                custDA.Fill(custDS, rs, 
    "Customers")
                Adocon.Close()
                Adocon 
    = Nothing
                rs 
    = Nothing

            
    Catch
                
    If Adocon.State = ConnectionState.Open Then
                    Adocon.Close()
                
    End If

                m_sRunMsg 
    = (Err.Description.ToString) ', MsgBoxStyle.Exclamation, "错误提示")

            
    End Try


            
    Return custDS


        
    End Function


        
    '***************************************************************
        '取出Access数据库中的所有表名
        '***************************************************************
        Public Function GetTableNameFromAccess(ByVal AccessDbPathAndFileName As StringAs ArrayList
            
    Dim TablesArray As New ArrayList

            
    Dim cnn1 As New ADODB.Connection
            
    Dim cmd1 As New ADODB.Command
            
    Dim tbl1 As New Table
            
    Try
                cnn1.Open(
    "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                         
    "Data Source=" & AccessDbPathAndFileName)
                
    Dim cat1 As New Catalog
                cat1.ActiveConnection 
    = cnn1
                
    Dim i As Integer = cat1.Tables.Count  '统计access库中表的个数
                ' MsgBox("共有 " & CStr(i) & "张表")
                'Dim TableName1(i + 1) As String
                Dim j As Integer = 0


                
    If i > 0 Then
                    
    For j = 0 To i - 1
                        
    ' TableName1(j) = (cat1.Tables(j).Name.ToString)
                        '  MsgBox("表名:" & TableName1(j))
                        TablesArray.Add(cat1.Tables(j).Name.ToString())
                    
    Next j
                
    End If
                cnn1.Close()

            
    Catch ex As Exception

                
    If (cnn1.State = ConnectionState.Open) Then
                    cnn1.Close()
                
    End If

            
    End Try

            
    Return TablesArray

        
    End Function


        
    '***********************************************************************
        '在Access表执行Sql语句
        '***********************************************************************
        Public Function ExecuteSqlstrInAccess(ByVal AccessDbPathAndFileName As StringByVal SqlStr As StringAs Boolean
            
    Dim bResult As Boolean = True
            
    Dim cnn1 As New ADODB.Connection
            
    Dim cmd1 As New ADODB.Command
            
    Dim tbl1 As New Table
            
    Try
                cnn1.Open(
    "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                         
    "Data Source=" & AccessDbPathAndFileName)
                cmd1 
    = New ADODB.Command
                
    With cmd1
                    .ActiveConnection 
    = cnn1
                    .CommandText 
    = SqlStr   '执行 select ,insert,update,delete 等sql语句.
                    .CommandType = ADODB.CommandTypeEnum.adCmdText
                    .Execute()
                
    End With
                cnn1.Close()

            
    Catch ex As Exception
                bResult 
    = False
                
    If (cnn1.State = ConnectionState.Open) Then
                    cnn1.Close()
                
    End If
                m_sRunMsg 
    = (Err.Description.ToString) ', MsgBoxStyle.Information, "ExecuteSqlstrInAccess错误提示")
            End Try
            
    Return bResult
        
    End Function



        
    '*************************************************************************************************************************************************'
        '2.调用存储过程操纵数据库
        '*************************************************************************************************************************************************'


        
    Public Function P_GetDataFromDB(ByVal Proc1 As StringByVal mySqlCon As SqlConnection) As DataSet



            myDataSet 
    = New DataSet
            myDataSet.Clear()
            
    '实例化一个数据集对象
            Dim scmd As New SqlCommand
            scmd 
    = New SqlCommand(Proc1, mySqlCon)
            scmd.CommandType 
    = CommandType.StoredProcedure
            
    Dim mySqlDataadapter1 As New SqlDataAdapter
            mySqlDataadapter1 
    = New SqlDataAdapter(scmd)
            
    Try
                mySqlCon.Open()
                mySqlDataadapter1.Fill(myDataSet)
            
    Catch
                myDataSet 
    = Nothing
                m_sRunMsg 
    = ("P_GetDataFromDB 错误号:" & Err.Number.ToString & "错误描述:" & Err.Description.ToString)
            
    Finally
                
    If mySqlCon.State = ConnectionState.Open Then
                    mySqlCon.Close()
                
    End If
            
    End Try

            
    Return myDataSet

        
    End Function


        
    '使用存储过程和数据阅读器获取数据

        
    Public Function P_ExecAddPra(ByVal ProStr1 As StringByVal Pram1 As StringByVal Pram2 As StringByVal SqlCon1 As SqlConnection) As SqlDataReader
            
    Dim myReader As SqlClient.SqlDataReader
            
    Dim scmd As New SqlCommand(ProStr1, SqlCon1)
            scmd.CommandType 
    = CommandType.StoredProcedure
            
    With scmd.Parameters
                
    '.Add(New SqlParameter("@no", SqlDbType.VarChar)).Value = "NO.1005"
                '.Add(New SqlParameter("@cb", SqlDbType.VarChar)).Value = "CB.1006"
                '或者采用下面的方法也可
                .Add(Pram2, SqlDbType.VarChar, 50)
                .Item(Pram2).Value 
    = Pram1
            
    End With

            
    Try
                myReader 
    = Nothing
                SqlCon1.Open()
                myReader 
    = scmd.ExecuteReader
            
    Catch expsql As SqlException
                
    'MsgBox(expsql.ToString & "错误号 :" & Err.Number & "错误描述 :" & Err.Description, MessageBoxButtons.OK, MessageBoxIcon.Error)
                myReader.Close()

                m_sRunMsg 
    = ("P_ExecAddPra 错误号:" & Err.Number.ToString & "错误描述:" & Err.Description.ToString)
            
    Finally
                
    If SqlCon1.State = ConnectionState.Open Then
                    SqlCon1.Close() 
    '关闭连接
                End If
            
    End Try
            
    Return myReader
        
    End Function




        
    Public Function P_ExecAndAddPra2(ByVal ProStr1 As StringByVal praWorth As StringByVal PraVar As StringByVal SqlCon1 As SqlConnection) As String
            
    Dim scmd As New SqlCommand(ProStr1, SqlCon1)

            
    Dim resultStr As String = ""
            scmd.CommandType 
    = CommandType.StoredProcedure
            
    With scmd.Parameters
                
    '.Add(New SqlParameter("@no", SqlDbType.VarChar)).Value = "NO.1005"
                '.Add(New SqlParameter("@cb", SqlDbType.VarChar)).Value = "CB.1006"
                '或者采用下面的方法也可
                .Add(PraVar, SqlDbType.VarChar, 50)

                .Item(PraVar).Value 
    = praWorth

            
    End With
            
    Try
                SqlCon1.Open()
                resultStr 
    = scmd.ExecuteScalar
            
    Catch expsql As SqlException
                
    'MessageBox.Show(expsql.ToString, MessageBoxButtons.OK, MessageBoxIcon.Error)
                m_sRunMsg = ("P_ExecAndAddPra2 错误号:" & Err.Number.ToString & "错误描述:" & Err.Description.ToString)
            
    Finally
                
    If SqlCon1.State = ConnectionState.Open Then
                    SqlCon1.Close()
                
    End If
            
    End Try
            
    Return resultStr
        
    End Function


        
    Public Function P_ExecAndAddPra4(ByVal ProName As StringByVal PraVar1 As StringByVal praValue1 As StringByVal PraVar2 As StringByVal praValue2 As StringByVal SqlCon1 As SqlConnection) As String
            
    Dim scmd As New SqlCommand(ProName, SqlCon1)

            
    Dim resultStr As String = "-1"
            scmd.CommandType 
    = CommandType.StoredProcedure
            
    With scmd.Parameters
                
    '.Add(New SqlParameter("@no", SqlDbType.VarChar)).Value = "NO.1005"
                '.Add(New SqlParameter("@cb", SqlDbType.VarChar)).Value = "CB.1006"
                .Add(New SqlParameter(PraVar1, SqlDbType.VarChar)).Value = praValue1
                .Add(
    New SqlParameter(PraVar2, SqlDbType.VarChar)).Value = praValue2

                
    '或者采用下面的方法也可
                '.Add(PraVar1, SqlDbType.VarChar, 50)

                
    '.Item(PraVar1).Value = praWorth1

            
    End With
            
    Try
                SqlCon1.Open()
                resultStr 
    = Convert.ToString(scmd.ExecuteScalar)

            
    Catch expsql As SqlException
                
    'MessageBox.Show(expsql.ToString, MessageBoxButtons.OK, MessageBoxIcon.Error)
                resultStr = "-1"

                m_sRunMsg 
    = ("P_ExecAndAddPra2 错误号:" & Err.Number.ToString & "错误描述:" & Err.Description.ToString)

            
    Finally
                
    If SqlCon1.State = ConnectionState.Open Then
                    SqlCon1.Close()
                
    End If
            
    End Try
            
    Return resultStr
        
    End Function



        
    Public Function P_ExecAndAddPra3(ByVal ProStr1 As StringByVal PraWorth1 As StringByVal PraVar1 As StringByVal PraWorth2 As StringByVal PraVar2 As StringByVal SqlCon1 As SqlConnection) As Integer




            
    Dim n As Integer = 0
            
    Dim scmd As New SqlCommand(ProStr1, SqlCon1)

            
    Dim resultStr As String = ""
            scmd.CommandType 
    = CommandType.StoredProcedure
            
    With scmd.Parameters
                
    '.Add(New SqlParameter("@no", SqlDbType.VarChar)).Value = "NO.1005"
                '.Add(New SqlParameter("@cb", SqlDbType.VarChar)).Value = "CB.1006"
                '或者采用下面的方法也可
                .Add(PraVar1, SqlDbType.VarChar, 50)
                .Item(PraVar1).Value 
    = PraWorth1
                .Add(PraVar2, SqlDbType.VarChar, 
    50)
                .Item(PraVar2).Value 
    = PraWorth2
            
    End With
            
    Try
                SqlCon1.Open()
                resultStr 
    = scmd.ExecuteNonQuery
                n 
    = 1
            
    Catch expsql As SqlException
                m_sRunMsg 
    = ("P_ExecAndAddPra3 错误号:" & Err.Number.ToString & "错误描述:" & Err.Description.ToString)
                n 
    = 0
            
    Finally
                
    If SqlCon1.State = ConnectionState.Open Then
                    SqlCon1.Close()  
    '关闭连接
                End If
            
    End Try
            
    Return n
        
    End Function



        
    Public Function P_ExecAndNoPra(ByVal ProStr1 As StringByVal SqlCon1 As SqlConnection) As Integer

            
    Dim n As Integer = 0
            
    Dim scmd As New SqlCommand(ProStr1, SqlCon1)

            
    Dim resultStr As String = ""
            scmd.CommandType 
    = CommandType.StoredProcedure

            
    Try
                SqlCon1.Open()
                resultStr 
    = scmd.ExecuteNonQuery

                n 
    = 1
            
    Catch expsql As SqlException

                m_sRunMsg 
    = ("P_ExecAndNoPra 错误号:" & Err.Number.ToString & "错误描述:" & Err.Description.ToString)

                n 
    = 0
            
    Finally
                
    If SqlCon1.State = ConnectionState.Open Then
                    SqlCon1.Close()  
    '关闭连接
                End If

            
    End Try
            
    Return n
        
    End Function


        
    '*************************************************************************************************************************************************'
        '3.创建ACCESS数据库
        '*************************************************************************************************************************************************'

        
    Public Function CreateAccessDB(ByVal NewDBPathName As StringAs Integer
            
    Dim i As Integer = 1
            
    Dim cat As Catalog = New Catalog
            
    Try
                cat.Create(
    "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                          
    "Data Source=" & NewDBPathName & _
                          
    "Jet OLEDB:Engine Type=5")

                
    'Console.WriteLine("Database Created Successfully")

            
    Catch
                i 
    = 0
                m_sRunMsg 
    = ("CreateAccessDB 错误号 : " & Err.Number.ToString & " 错误描述:" & Err.Description.ToString)

            
    End Try
            cat 
    = Nothing
            
    Return i
        
    End Function




        
    '*************************************************************************************************************************************************'
        '4.获取或更新数据库中的数据
        '*************************************************************************************************************************************************'



        
    Public Function GetMaxNumFrom_SqlDB(ByVal SqlStr As StringByVal mySqlCon As SqlConnection, ByVal TableName As StringAs String


            
    '获取当前所有纪录的最大纪录号
            Dim str2 As String = "1000"
            
    Dim myDataset2 As DataSet
            myDataset2 
    = New DataSet
            mySqlCon.Open()


            
    Try
                myDataset2.Clear()
                myDataset2 
    = GetDataFrom_SqlDB(SqlStr, mySqlCon, TableName)

                str2 
    = myDataset2.Tables(0).Rows(0).Item(0)
                
    Dim m As Integer = 0
                m 
    = myDataset2.Tables(0).Rows.Count()
                
    If m = 0 Then
                    str2 
    = "0001"
                    m_sRunMsg 
    = ("没有找到最大值,系统自动生成初始编号'0001'."', MsgBoxStyle.Information, "提示")
                Else
                    
    Dim n As Integer = CInt(str2) + 1
                    str2 
    = CStr(n)
                    
    '                MsgBox("最大值为:" & str2)
                End If
            
    Catch exp As Exception
                myDataSet 
    = Nothing

                m_sRunMsg 
    = (" GetMaxNumFrom_SqlDB 错误号:" & Err.Number & "错误描述:" & Err.Description)

            
    Finally
                
    If mySqlCon.State = ConnectionState.Open Then
                    mySqlCon.Close()  
    '关闭连接
                End If

            
    End Try
            
    Return str2
        
    End Function



        
    Public Function GetDataFrom_SqlDB(ByVal SqlStr As StringByVal mySqlCon As SqlConnection, ByVal TableName As StringAs DataSet


            
    '注意此处mysqlcon要采用动态连接

            
    'mySqlCon = New SqlConnection()
            'SqlCnn1 = New CTYSqlCon_CLB.Class1()
            'mySqlCon = SqlCnn1.MSSQLLink
            myDataSet = New DataSet
            myDataSet.Clear()
            
    '实例化一个数据集对象
            Try
                mySqlCon.Open()

                
    '打开数据库连接
                mySqlDataAdapter = New SqlDataAdapter(SqlStr, mySqlCon)

                
    '将数据库的数据映射到数据适配器
                mySqlDataAdapter.Fill(myDataSet, TableName)


                
    '填充数据集的数据

            
    Catch
                myDataSet 
    = Nothing
                m_sRunMsg 
    = (" GetDataFrom_SqlDB 错误号:" & Err.Number.ToString & "错误描述:" & Err.Description.ToString)
            
    Finally
                
    If mySqlCon.State = ConnectionState.Open Then
                    mySqlCon.Close()
                    
    '关闭数据连接,这一点很重要
                End If

            
    End Try

            
    Return myDataSet

        
    End Function


        
    '*****************************************************
        '获取sql数据库中用户所建表的表名,id号
        '*****************************************************
        Public Function GetUserTableNameFrom_SqlDB(ByVal mySqlCon As SqlConnection) As DataSet


            
    '注意此处mysqlcon要采用动态连接

            
    'mySqlCon = New SqlConnection()
            'SqlCnn1 = New CTYSqlCon_CLB.Class1()
            'mySqlCon = SqlCnn1.MSSQLLink
            Dim SqlStr As String = "select name,id from sysobjects where xtype='U'"
            
    Dim TableName As String = "sysobjects"
            myDataSet 
    = New DataSet
            myDataSet.Clear()
            
    '实例化一个数据集对象
            Try
                mySqlCon.Open()

                
    '打开数据库连接
                mySqlDataAdapter = New SqlDataAdapter(SqlStr, mySqlCon)

                
    '将数据库的数据映射到数据适配器
                mySqlDataAdapter.Fill(myDataSet, TableName)


                
    '填充数据集的数据

            
    Catch
                myDataSet 
    = Nothing
                m_sRunMsg 
    = (" GetDataFrom_SqlDB 错误号:" & Err.Number.ToString & "错误描述:" & Err.Description.ToString)
            
    Finally
                
    If mySqlCon.State = ConnectionState.Open Then
                    mySqlCon.Close()
                    
    '关闭数据连接,这一点很重要
                End If

            
    End Try

            
    Return myDataSet

        
    End Function



        
    '**************************************************
        '更新Sql数据库,返回受影响的纪录条数
        '**************************************************
        Public Function Update_Sql_Data(ByVal SqlStr As StringByVal mySqlCon As SqlConnection) As Double

            
    '注意此处mysqlcon要采用动态连接

            
    Dim objCommand As SqlCommand = New SqlCommand
            
    'mySqlCon = New SqlConnection()
            'SqlCnn1 = New CTYSqlCon_CLB.Class1()
            'mySqlCon = SqlCnn1.MSSQLLink
            '此处应用到具体项目中的全局变量,到程序中先行实例化.
            Dim i As Double = 0
            
    Try
                mySqlCon.Open()
                objCommand.Connection 
    = mySqlCon
                objCommand.CommandText 
    = SqlStr
                objCommand.CommandType 
    = CommandType.Text
                i 
    = objCommand.ExecuteNonQuery()

            
    Catch
                i 
    = 0
                m_sRunMsg 
    = ("Update_Sql_Data 错误号:" & Err.Number.ToString & "错误描述:" & Err.Description.ToString)


            
    Finally
                
    If mySqlCon.State = ConnectionState.Open Then
                    mySqlCon.Close()  
    '关闭连接
                End If

            
    End Try

            
    Return i

        
    End Function


        
    '**************************************************
        '更新Sql数据库,返回受影响的纪录条数
        '**************************************************
        Public Function Get_Sql_ExecuteScalar(ByVal SqlStr As StringByVal mySqlCon As SqlConnection) As Double

            
    '注意此处mysqlcon要采用动态连接

            
    Dim objCommand As SqlCommand = New SqlCommand
            
    'mySqlCon = New SqlConnection()
            'SqlCnn1 = New CTYSqlCon_CLB.Class1()
            'mySqlCon = SqlCnn1.MSSQLLink
            '此处应用到具体项目中的全局变量,到程序中先行实例化.
            Dim i As Double = 0
            
    Try
                mySqlCon.Open()
                objCommand.Connection 
    = mySqlCon
                objCommand.CommandText 
    = SqlStr
                objCommand.CommandType 
    = CommandType.Text
                i 
    = Convert.ToInt64(objCommand.ExecuteScalar())

            
    Catch
                i 
    = 0
                m_sRunMsg 
    = ("Update_Sql_Data 错误号:" & Err.Number.ToString & "错误描述:" & Err.Description.ToString)


            
    Finally
                
    If mySqlCon.State = ConnectionState.Open Then
                    mySqlCon.Close()  
    '关闭连接
                End If

            
    End Try

            
    Return i

        
    End Function




        
    Public Function GetDataFrom_OleDB(ByVal SqlStr As StringByVal myOleDBCon As OleDbConnection, ByVal TableName As StringAs DataSet


            
    '注意此处mysqlcon要采用动态连接
            myDataSet = New DataSet
            myDataSet.Clear()
            
    '实例化一个数据集对象
            Try
                myOleDBCon.Open()
                
    '打开数据库连接
                myOleDBDataAdapter = New OleDbDataAdapter(SqlStr, myOleDBCon)

                
    '将数据库的数据映射到数据适配器
                myOleDBDataAdapter.Fill(myDataSet, TableName)


            
    Catch
                myDataSet 
    = Nothing

                m_sRunMsg 
    = (" GetDataFrom_OleDB 错误号:" & Err.Number & "错误描述:" & Err.Description)
            
    Finally
                
    If myOleDBCon.State = ConnectionState.Open Then
                    myOleDBCon.Close()  
    '关闭连接
                End If

            
    End Try
            
    Return myDataSet


        
    End Function


        
    '*********************************************************
        '更新(UPDATE、INSERT 和 DELETE)采用ole方式联接的数据库,返回受影响的纪录条数
        '*********************************************************
        Public Function UpDate_OleDB(ByVal SqlStr As StringByVal OleDBCon As OleDbConnection) As Integer
            
    'Dim SqlConStr As String = "provider=SQLOLEDB.1;Data Source=" & _
            '"localhost;uid=sa;pwd=sa;Initial Catalog=CarDriManage;"
            Dim i As Integer = 0
            
    Try
                
    'Dim OleDBCon As New OleDbConnection(SqlConStr)
                OleDBCon.Open()
                
    Dim oleSqlCommand As New OleDbCommand(SqlStr, OleDBCon)

                oleSqlCommand.CommandText 
    = SqlStr
                i 
    = oleSqlCommand.ExecuteNonQuery()


            
    Catch e As Exception

                i 
    = 0
                m_sRunMsg 
    = (" UpDate_OleDB 错误号:" & Err.Number & "错误描述:" & Err.Description)
            
    Finally
                
    If OleDBCon.State = ConnectionState.Open Then
                    OleDBCon.Close()  
    '关闭连接
                End If


            
    End Try
            
    Return i

        
    End Function


        
    '*********************************************************
        '访问采用ole方式联接的数据库,返回结果的第一行第一列
        '*********************************************************
        Public Function OleDB_ExecuteScalar(ByVal SqlStr As StringByVal OleDBCon As OleDbConnection) As Integer
            
    'Dim SqlConStr As String = "provider=SQLOLEDB.1;Data Source=" & _
            '"localhost;uid=sa;pwd=sa;Initial Catalog=CarDriManage;"
            '如:select count(*) from myTableName where yourCondition 
            Dim ValueOfFirstRowFirstColumn As Integer = Nothing
            
    Try
                
    'Dim OleDBCon As New OleDbConnection(SqlConStr)
                OleDBCon.Open()
                
    Dim oleSqlCommand As New OleDbCommand(SqlStr, OleDBCon)

                oleSqlCommand.CommandText 
    = SqlStr
                ValueOfFirstRowFirstColumn 
    = oleSqlCommand.ExecuteScalar


            
    Catch e As Exception

                ValueOfFirstRowFirstColumn 
    = Nothing
                m_sRunMsg 
    = (" UpDate_OleDB 错误号:" & Err.Number & "错误描述:" & Err.Description)
            
    Finally
                
    If OleDBCon.State = ConnectionState.Open Then
                    OleDBCon.Close()  
    '关闭连接
                End If


            
    End Try
            
    Return ValueOfFirstRowFirstColumn

        
    End Function



        
    '使用数据阅读器获取数据

        
    Public Function Get_SqlData_UseReader(ByVal SqlStr As StringByVal SqlCon As SqlConnection) As ArrayList '返回使用大小按需分配的数组

            
    Dim Command As New SqlCommand(SqlStr, SqlCon)
            
    Dim myAL As New ArrayList                    '动态增长容量的数组
            Dim myDR As SqlClient.SqlDataReader
            
    Try
                SqlCon.Open()
                
    'executeReader method returns a SqlDataReader
                'that allows you to sequentially read data from a table
                myDR = Command.ExecuteReader
                
    'create an arraylist object

                
    While myDR.Read
                    myAL.Add(myDR.GetValue(
    0)) 'myDR.GetValues  
                End While

            
    Catch
                myAL 
    = Nothing
                m_sRunMsg 
    = (" Get_SqlData_UseReader 错误号:" & Err.Number & "错误描述:" & Err.Description)
            
    Finally
                
    If SqlCon.State = ConnectionState.Open Then
                    SqlCon.Close()  
    '关闭连接
                End If
                
    If myDR.IsClosed = False Then
                    myDR.Close()
                
    End If

            
    End Try

            
    Return myAL

        
    End Function



    End Class

  • 相关阅读:
    etcd
    mesos+marathon+zookeeper+docker
    安装好dashboard 登录出现错误
    最小化centos7离线安装docker环境
    centons7安装ftp
    TensorFlow运行模型demo时常见问题
    centos7全新系统安装TensorFlow
    vmware创建虚拟机并安装centos7系统
    python使用moviepy模块对视频进行操作
    iis7/8隐藏banner信息
  • 原文地址:https://www.cnblogs.com/furenjun/p/ado.html
Copyright © 2011-2022 走看看