Vbscript 经典Asp-若列ID存在,则更新数据库中的值,若不存在,则将其添加到数据库中
我有一个csv文件,我需要添加到数据库中,如果ID值不存在,如果它确实存在,那么我需要更新它 例如: 1.如果ID(CSV文件)=1,ID(SQL数据库)=1,那么在这种情况下,我需要使用CSV文件中的数据更新数据库中的此行Vbscript 经典Asp-若列ID存在,则更新数据库中的值,若不存在,则将其添加到数据库中,vbscript,asp-classic,adodb,Vbscript,Asp Classic,Adodb,我有一个csv文件,我需要添加到数据库中,如果ID值不存在,如果它确实存在,那么我需要更新它 例如: 1.如果ID(CSV文件)=1,ID(SQL数据库)=1,那么在这种情况下,我需要使用CSV文件中的数据更新数据库中的此行 如果ID(CSV文件)=2,并且ID(SQL数据库)=在ID列中没有值2,那么在这种情况下,我需要在数据库中添加具有CSV列值的此行 如果ID(csv文件)在表中没有相应的值,但无法编码如何更新该行(如果存在),则我成功地添加了该行 有人能帮我吗 谢谢 注意:“rs”包含文
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
“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
Set rs=GetRecordSet(“C:\upload\new\”&TheNewFileName2)
'Response.Write“无错误”
Set cn=Server.CreateObject(“ADODB.Connection”)
cn.ConnectionString=“DSN=ABCD”
中国公开赛
i=0
Set rsAdd=Server.CreateObject(“ADODB.RecordSet”)
rsAdd.CursorType=1
rsAdd.LockType=3
rsAdd.Open“Merchants”,中国
而不是卢比
rsAdd.AddNew
对于rs字段中的每个列
rsAdd(替换(列名称“,”)=列值
下一个
rsAdd.更新
rsAdd.Move 0
下一个
i=i+1
如果(i mod 100)=0或i=1,则
回答。写下我&“
如果(i mod 2500)=0,则
响应。写“
”
如果结束
如果结束
温德
rsAdd.关闭
设置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
而rs.EOF
如果rsAdd(“MerchantId”).Value=rs(“商户ID”).Value,则
rsAdd.更新
对于rs字段中的每个列
rsAdd(替换(列名称“,”)=列值
下一个
其他的
rsAdd.AddNew
对于rs字段中的每个列
rsAdd(替换(列名称“,”)=列值
下一个
如果结束
rsAdd.更新
rsAdd.Move 0
下一个
i=i+1
如果(i mod 100)=0或i=1,则
回答。写下我&“
如果(i mod 2500)=0,则
响应。写“
”
如果结束
如果结束
温德
如果我不必担心标识/自动递增字段,我会运行一条sql语句删除该行(不管它是否存在),然后插入所有数据。“这可以防止受骗者出现。”约书亚·蒙哥马利我对你说的有点困惑。我试着用另一种方式做。如果您在上面看到,我尝试比较ID并尝试更新,但如果条件为ADODB.Field error'800a0bcd'BOF或EOF为真,或者当前记录已被删除,则会抛出一个错误。请求的操作需要一个当前记录。如果您能获取ID列的名称,我可以为您提供一个我所指内容的示例