用VB6编写更新SQL数据库的数据不成,为何?
我用VB6.0更新SQL料料的程式,什老是提示rs.Edit一句出,是Edit未找到方法或料成?程式和注如下:
Private Sub cmdEdit1_Click()
Dim conn As New adodb.Connection
Dim rs As New adodb.Recordset
Set conn = New adodb.Connection
Set rs = CreateObject( "adodb.recordset ")
conn.ConnectionString = "Driver={SQL Server};server=XICHEN;uid=sa;pwd=1234;database=disc "
conn.Open
rs.Open "select * from disc_name ", conn, adOpenForwardOnly, adLockReadOnly
Dim Result() As String
Dim EditID As String
Result = Split(List2.Text, ", ") ‘List2是一列表框,有形如1,aa '和2,bb及3,cc的料,Result就是取1,2或3
EditID = Result(0) ‘ 把1,2,或3EditID
rs.MoveFirst
Do While Not rs.EOF
If rs.Fields( "disc_name_id ").Value = EditID Then ‘rs.Fields '( "disc_name_id ")是disc_name表的第一 位。
' 句的意思是找到Id ' EditID的。
rs.Edit ‘ 始更新,出 '
rs.Fields( "discname ").Value = Text4.Text ‘ rs.Fields '( "discname ")是disc_name表 '的第二位,位 '的值改成Text4入的值
rs.Update
Debug.Print "discname= " & rs.Fields( "disc_name ").Value
Exit Do
End If
rs.MoveNext
Loop
MsgBox "已成功修改名! "
rs.Close
End Sub
[解决办法]
更有效率的方法:
Dim conn As New adodb.Connection
Set conn = New adodb.Connection
conn.ConnectionString = "Driver={SQL Server}; "_
& "server=XICHEN;uid=sa;pwd=1234;database=disc "
conn.Open
Dim Result() As String
Dim EditID As String
Result = Split(List2.Text, ", ") ‘List2是一列表框,有形如1,aa '和2,bb及3,cc的料,Result就是取1,2或3
EditID = Result(0)
conn.execute "update disc_name set discname= ' "& trim(Text4.Text) & " ' " _
& " where disc_name_id= ' "& EditID & " ' "
set conn=nothing