VB+SQL死人都不能修改保存!!!

TB0500636 2005-08-16 09:50:34
为了看得清楚,我把东西都放一个窗体了,数据库绝对没问题,这个窗体实现的是把客户表中第二列的所有内容都赋值给文本框,通过修改文本框中的内容后,点击修改(cmd_changuser),内容就可以保存到数据库中了,但是装载的时候也就是Form_Load的功能可以实现,点击修改(cmd_changuser)里面的功能却不能实现报错说"多步OLE DB 产生错误.如果可能,请检查每一个OLE DB状态值,没有工作被完成"怎么会这样啊?这么简单的代码不能实现? 不好意思新手只有这么点分了!
Public cn1 As ADODB.Connection, rs1 As ADODB.Recordset, strSql1 As String

Private Sub cmd_changuser_Click()


'把当前文本框内值保存到rs1记录集中
For i = 0 To txtchanguser.Count - 1
rs1.Fields(i).Value = txtchanguser(i).Text
Next i
rs1.UpdateBatch
MsgBox ("修改成功")

End Sub

Private Sub cmd_end_Click()

Unload Me

End Sub

Private Sub Form_Load()

'连接wh_hotel数据库
Set cn1 = New ADODB.Connection
cn1.ConnectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=wh_hotel;Data Source=."
cn1.ConnectionTimeout = 30
cn1.Open
Set rs1 = New ADODB.Recordset
If rs1.State = 1 Then rs1.Close
'打开第二列Client_id为2那一行的值,保存到rs1中
strSql1 = "select * from client where Client_id='2'"
rs1.Open strSql1, cn1, adOpenDynamic, adLockBatchOptimistic

'把rs1中的集赋给文本框
For i = 0 To txtchanguser.Count - 1
txtchanguser(i).Text = rs1.Fields(i).Value
Next

Move (Screen.Width - Width) \ 2, (Screen.Height - Height) \ 2

End Sub
...全文
109 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
daisy8675 2005-08-17
  • 打赏
  • 举报
回复
呵呵,不是解决了吗?主键不修改问题,快结帖吧:P:P:P

又赚了,哈哈,不过为什么只有10分呢....
netcoder 2005-08-17
  • 打赏
  • 举报
回复
try:
Private Sub cmd_changuser_Click()


'把当前文本框内值保存到rs1记录集中
For i = 0 To txtchanguser.Count - 1
rs1.Fields(i).Value = txtchanguser(i).Text
rs1.UpdateBatch
Next i

MsgBox ("修改成功")

End Sub
天地客人 2005-08-17
  • 打赏
  • 举报
回复
换数据库驱动方式!用ADO试试!
TB0500636 2005-08-17
  • 打赏
  • 举报
回复
怎么换ADO的?UDL里面连的,只有OLE DB 模式的!

27,581

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧