我有一个csv文件,如果ID值不存在,我需要添加到数据库,如果它确实存在,那么我需要更新它。
实施例: 1.如果ID(CSV文件)= 1且ID(SQL数据库)= 1,则在这种情况下,我需要使用csv文件中的数据更新数据库中的此行。
如果ID(csv文件)在表中没有对应的值但是无法编写如何更新行(如果存在的话),则我成功添加了行。
任何人都可以帮助我。
谢谢!
注意:“rs”包含文件的所有列及其值。
“rsAdd”包含数据库表(商家)及其值的所有列。
Set rs = GetRecordSet("C:\upload\new\" & TheNewFileName2)
'Response.Write "No Errors"
Set cn = Server.CreateObject("ADODB.Connection")
cn.ConnectionString="DSN=ABCD"
cn.Open
i = 0
Set rsAdd = Server.CreateObject("ADODB.RecordSet")
rsAdd.CursorType=1
rsAdd.LockType=3
rsAdd.Open "Merchants", cn
While Not rs.EOF
rsAdd.AddNew
For Each col in rs.Fields
rsAdd(Replace(col.Name,"_","")) = col.Value
Next
rsAdd.Update
rsAdd.Move 0
rs.MoveNext
i = i + 1
If (i mod 100)=0 Or i=1 Then
Response.Write i & ","
If (i mod 2500) = 0 Then
Response.Write "<br />"
End If
End If
Wend
rsAdd.Close
Set rsAdd = Nothing
我试过这样做但仍然没有结果。
While rs.EOF
If rsAdd("MerchantId").Value = rs("Merchant_ID").Value Then
rsAdd.Update
For Each col in rs.Fields
rsAdd(Replace(col.Name,"_","")) = col.Value
Next
Else
rsAdd.AddNew
For Each col in rs.Fields
rsAdd(Replace(col.Name,"_","")) = col.Value
Next
End If
rsAdd.Update
rsAdd.Move 0
rs.MoveNext
i = i + 1
If (i mod 100)=0 Or i=1 Then
Response.Write i & ","
If (i mod 2500) = 0 Then
Response.Write "<br />"
End If
End If
Wend