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