Foxtable(狐表)用户栏目专家坐堂 → [求助] sql保存速度如何优化


  共有2130人关注过本帖平板打印复制链接

主题:[求助] sql保存速度如何优化

帅哥哟,离线,有人找我吗?
2900819580
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1311 积分:9528 威望:0 精华:0 注册:2015/6/30 8:46:00
[求助] sql保存速度如何优化  发帖心情 Post By:2020/3/17 16:06:00 [只看该作者]

    老师,以下是保存的代码,逐行判断和保存,行数多的话,很慢,有点假死的感觉,有没有什么方法优化一下。

 

    cmd.CommandText = "sele ct * from {明细} where  [_Identify] is null"
        Dim sdt As DataTable = cmd.ExecuteReader
       
        For Each dr As DataRow In dt.Se lect("ch > 0")
            cmd.CommandText = "sel ect Count(*) FROM {明细} where ItID = " & dr("ItID")
            Dim sz As String
            Dim lm As String           
            If cmd.ExecuteScalar > 0 Then
                For Each c As DataCol In sdt.DataCols
                    If c.Name <> "ch" AndAlso tb.Cols.Contains(c.Name) Then
                        If sz > "" Then sz &= ","
                        sz &= c.Name & " = '" & dr(c.Name) & "'"
                    End If
                Next
                cmd.CommandText = "UPD ATE {明细} SET " & sz & " WHERE ItID = " & dr("ItID")
                cmd.ExecuteNonQuery()
            Else
                For Each c As DataCol In sdt.DataCols
                    If c.Name <> "ch" AndAlso tb.Cols.Contains(c.Name) Then
                        If lm > "" Then lm &= ","
                        lm &= "[" & c.Name & "]"
                        If sz > "" Then sz &= ","
                        sz &= "'" & dr(c.Name) & "'"
                    End If
                Next
                cmd.CommandText = "Ins ert Into {明细} (" & lm & ") Values ( " & sz & ")"
                cmd.ExecuteNonQuery
            End If
            sz = Nothing
            lm = Nothing
        Next


 回到顶部