当前位置:编程学习 > VB >>

[新手提问]ADO更新数据问题

先说下问题,用的是SQL数据库
有个表是房间表 ,有字段 rno(房间号), rname(入住人姓名),r易做图(性别),rid(身份证),time(入住时间)

窗口上有四个text框,text1,text2,text3,text4分别输入rno ,rname,r易做图,rid

一个按钮 command1(入住登记)

最后的time 我定义today=now(取得系统时间)直接赋值给time字段

Public rst As New ADODB.Recordset

Private Sub Command1_Click()

Dim today
today = Now

Set rst = Adodc1.Recordset
sql = "select rid from room where rid='" & Trim$(Text1.Text) & "'"
rst!rno = Text1.Text
rst!rname = Text2.Text
rst!r易做图 = Text3.Text
rst!rid = Text4.Text
rst!Time = today
rst.Update
MsgBox "登记成功!", vbOKOnly + vbInformation, "友情提示"
End Sub

我这样写代码 无论text1里输入的房间号是多少,他都只更新第一条数据,
而且是连房间号都更新成text1里输入的内容

我想知道根据我text1里输入的房间号来更新对应的数据库里的记录 --------------------编程问答-------------------- Public rst As New ADODB.Recordset 

Private Sub Command1_Click() 

Dim today 
today = Now 

Adodc1.CommandType = adCmdUnknown
Adodc1.RecordSource = "select rid from room where rid='" & Trim$(Text1.Text) & "'" 
Adodc1.Refresh

Set rst = Adodc1.Recordset 

rst!rno = Text1.Text 
rst!rname = Text2.Text 
rst!r易做图 = Text3.Text 
rst!rid = Text4.Text 
rst!Time = today 
rst.Update 
MsgBox "登记成功!", vbOKOnly + vbInformation, "友情提示" 
End Sub 
--------------------编程问答--------------------
引用 1 楼 chinaboyzyq 的回复:
Public rst As New ADODB.Recordset

 Private Sub Command1_Click()

 Dim today
 today = Now

Adodc1.CommandType = adCmdUnknown
 Adodc1.RecordSource = "select rid from room where rid='" & Trim$(Text1.Text) & "'"
 Adodc1.Refresh

 Set rst = Adodc1.Recordset

 rst!rno = Text1.Text
 rst!rname = Text2.Text
 rst!r易做图 = Text3.Text
 rst!rid = Text4.Text
 rst!Time = today
 rst.Update
 MsgBox "登记成功!", vbOKOnly + vbInformation, "友情提示"
 End Sub

这个可以的 --------------------编程问答-------------------- sql = "select rid from room where rid='" & Trim$(Text1.Text) & "'" 
你Text1中既然是房號,則條件不能用身份證號,應改為:
sql = "select rid from room where rno='" & Trim$(Text1.Text) & "'"  --------------------编程问答--------------------
引用 3 楼 flyingdragon168 的回复:
sql = "select rid from room where rid='" & Trim$(Text1.Text) & "'"
你Text1中既然是房號,則條件不能用身份證號,應改為:
sql = "select rid from room where rno='" & Trim$(Text1.Text) & "'"


这个是我写错了

楼上的写的虽然也都差不多能执行,但效果还是一样呀

只能修改表中的第一行 --------------------编程问答-------------------- 不可能出现的问题 主要是你的条件是身份证号  估计你每次输入房间号信息刚刚等于身份证号的信息  更改哪条记录是由于你的条件where子句决定的 肯定是这里的问题 再检查。

引用 4 楼 wyb741 的回复:
引用 3 楼 flyingdragon168 的回复:
sql = "select rid from room where rid='" & Trim$(Text1.Text) & "'"
你Text1中既然是房號,則條件不能用身份證號,應改為:
sql = "select rid from room where rno='" & Trim$(Text1.Text) & "'"


这个是我写错了

楼上的写的虽然也都差不多能执行,但效果还是一样呀

只能修改表中的第一行
补充:VB ,  网络编程
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,