请问怎么将一个数组中的值去更新数据库表中的一列?例:
rstOra.Open "select cardno from ke_school_student where company_id='0011' and class_name ='高一(1)班' " '查询出这个班级的所有卡号
If UBound(tmpid) = rstOra.RecordCount Then '此数组中己包含要替换的新卡号
Do While rstOra.EOF <> True
rstOra.Open "update ke_school_student set cardno = '数组????' where company_id='0011' and class_name ='高一(1)班'"
rstOra.MoveNext
Loop
End If请问我这个循环应该怎么写?才能把数组里面的新卡号逐个更新数据表中原来旧的卡号?请各位大哥帮帮忙忙,问题比较急
rstOra.Open "select cardno from ke_school_student where company_id='0011' and class_name ='高一(1)班' " '查询出这个班级的所有卡号
If UBound(tmpid) = rstOra.RecordCount Then '此数组中己包含要替换的新卡号
Do While rstOra.EOF <> True
rstOra.Open "update ke_school_student set cardno = '数组????' where company_id='0011' and class_name ='高一(1)班'"
rstOra.MoveNext
Loop
End If请问我这个循环应该怎么写?才能把数组里面的新卡号逐个更新数据表中原来旧的卡号?请各位大哥帮帮忙忙,问题比较急
解决方案 »
- 使用DATA控件提示“找不到可用的ISAM”最可能的原因是什么呢?
- 迷惑,VB连接数据库
- VB中的RS232基本通信
- 怎么使VB连接Oracle临时表的Connection Session和一个Word文件中Mail Merge连接同一临时表的Connection Session是一个Session..????(解决
- 我有个代码,但不知错在哪里?
- 我用的SQL命令。由于字段写的太多,超过了VB的编辑区。
- vB怎样模仿电影里飞字幕
- VB中datareport中是否可以直接控制某个label的内容。
- RegCreateKeyEx????
- 全局变量与publish变量可见范围由什么区别?
- 请教高手,一个VB的文件夹中文件的批处理问题。
- 数据导出以后的问题
rstOra.Open "select cardno from ke_school_student where company_id='0011' and class_name ='高一(1)班' " '查询出这个班级的所有卡号
If UBound(tmpid)+1 = rstOra.RecordCount Then '此数组中己包含要替换的新卡号
Do While rstOra.EOF <> True
rstOra.Open "update ke_school_student set cardno = '" & tmpid(i) & "' where company_id='0011' and class_name ='高一(1)班'"
rstOra.MoveNext
i=i+1
Loop
End If
怎么也不能是随便插入的吧?
如果数组时从小到大的,而且也是按这个顺序插入的可以这样
dim i as long
rstOra.Open "select cardno from ke_school_student where company_id='0011' and class_name ='高一(1)班' " '查询出这个班级的所有卡号
If UBound(tmpid)+1 = rstOra.RecordCount Then '此数组中己包含要替换的新卡号
Do While rstOra.EOF <> True
rstOra.Open "update ke_school_student set cardno = '" & tmpid(i) & "' where company_id='0011' and class_name ='高一(1)班' Order By cardno"'添加排序 按cardno从小到大
rstOra.MoveNext
i=i+1
Loop
End If
If UBound(tmpid) = rstOra.RecordCount Then '此数组中己包含要替换的新卡号
For i = 0 To rstOra.RecordCount - 1
rstOra.cardno = tmpid(i)
rstOra.Update
rstOra.MoveNext
Next i
End If
rstOra.Close
rstOra.Open "select cardno from ke_school_student where company_id='0011' and class_name ='高一(1)班' " '查询出这个班级的所有卡号
rstOra.MoveLast
If tmpid.count = rstOra.RecordCount Then '此数组中己包含要替换的新卡号
rstOra.MoveFirst
For i = 0 To rstOra.RecordCount - 1
rstOra.cardno = tmpid(i)
rstOra.Update
rstOra.MoveNext
Next i
End If
rstOra.Close
Dim rs As ADODB.Recordset
Dim sql As String Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset
conn.ConnectionString = "Provider=MSDAORA.1;User ID=kaf;password=kaf;Data Source=kaf;Persist Security Info=False"
conn.CursorLocation = adUseClient
conn.Open
rs.CursorLocation = adUseClient
rs.ActiveConnection = conn
sql = "select cardno from ke_school_student where company_id='0011' and class_name ='高一(1)班' "
Set rs = conn.Execute(sql)
If UBound(tmpid) = rs.RecordCount Then '此数组中己包含要替换的新卡号
For i = 0 To rs.RecordCount - 1
rs.Fields(0) = tmpid(i)
rs.Update
rs.MoveNext
Next i
End If
rs.Close
sql = "select cardno from ke_school_student where company_id='0011' and class_name ='高一(1)班' "
Set rs = conn.Execute(sql)
Set DataGrid1.DataSource = rs
DataGrid1.Refresh但这样查询出来后,数据库中并没有更新过来啊,是不是没有提交?
update 表名 set 字段名=‘新值’where 字段名=‘舊值’
如果改成大哥你那样的话,会提示这样一个错误
实时错误 '3251'
当前记录集不支持更新。这可能是提供程序的限制,也可能是选定锁定类型的限制to:vansoft(Vansoft Workroom) ( ) 信誉:55
可为什么这样执行,并不更新到数据库呢?难道只更新了rs记录集么? Do While rs.EOF <> True
estr = oSheet.Cells(r + 2, 2)
sstr = oSheet.Cells(r + 2, 3)
str = tmpid(r)
Debug.Print estr & "cardno is: " & str; " sex is: " & sstr
sql = "update ke_school_student set cardno = str where student_name = '" + estr + "' and sex = '" + sstr + "' "
Set rs = conn.Execute(sql)
rs.MoveNext
r = r + 1
Loop
循环这样做可不可以?为什么一样都不提交到数据表,查询出来的记录都是原来的值
rstOra.MoveLast
If tmpid.count = rstOra.RecordCount Then '此数组中己包含要替换的新卡号
rstOra.MoveFirst
For i = 0 To rstOra.RecordCount - 1
rstOra.cardno = tmpid(i)
rstOra.Update
rstOra.MoveNext
Next i
End If
rstOra.Close