日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

大量數(shù)據(jù)快速插入到DB

 昵稱10504424 2013-02-18

許多時候需要上傳一個excel文件到服務(wù)器端,然后將excel中大量數(shù)據(jù)導(dǎo)入到DB,

如果寫正常的插入sql語句速度比較慢,用以下方法比較快。

''' <summary>
    ''' 插入臨時表
    ''' </summary>
    ''' <param name="tbInfo"></param>
    ''' <param name="userId"></param>
    ''' <remarks></remarks>
    Private Sub BatchInsertInfo(ByVal tbInfo As DataTable, ByVal userId As String)
        Dim strConn As String

        Dim tableName As String = "EmployeeMaster_Import_Tmp"
        Dim dr As DataRow
        Dim queryString As String
        Dim dt As DateTime = Now
        Dim connection As New SqlConnection

        Try
            strConn = "數(shù)據(jù)庫連接字符串"
            queryString = "select * from EmployeeMaster_Import_Tmp where UserID = '' "

            'Using connection As New OracleConnection(strConn)
            connection = New SqlConnection(strConn)

            Dim adapter As New SqlDataAdapter()
            adapter.SelectCommand = New SqlCommand(queryString, connection)
            Dim builder As SqlCommandBuilder = New SqlCommandBuilder(adapter)

            connection.Open()

            Dim dataSet As DataSet = New DataSet
            adapter.Fill(dataSet, tableName)

            ' Code to modify data in DataSet here
            Dim table As DataTable = dataSet.Tables(tableName)

            For i As Integer = 0 To tbInfo.Rows.Count - 1
                dr = tbInfo.Rows(i)

                table.Rows.Add(table.NewRow)
                table.Rows(table.Rows.Count - 1).Item(0) = userId
                table.Rows(table.Rows.Count - 1).Item(1) = dr(0)

                。。。

                table.Rows(table.Rows.Count - 1).Item(17) = userId
                table.Rows(table.Rows.Count - 1).Item(18) = dt
                table.Rows(table.Rows.Count - 1).Item(19) = userId
                table.Rows(table.Rows.Count - 1).Item(20) = dt
                table.Rows(table.Rows.Count - 1).Item(21) = ""
                table.Rows(table.Rows.Count - 1).Item(22) = ""
            Next

            builder.GetUpdateCommand()

            ' Without the SqlCommandBuilder this line would fail.
            adapter.Update(dataSet, tableName)


            'End Using
        Catch ex As Exception
            '異常拋出
            Throw ex
        Finally
            '如何連接打開中,則關(guān)閉
            If (connection.State = ConnectionState.Open) Then
                '關(guān)閉數(shù)據(jù)庫連接
                connection.Close()
            End If
        End Try

    End Sub

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多