读书人

用VB6编写更新SQL数据库的数据不成

发布时间: 2012-02-03 22:02:47 作者: rapoo

用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

读书人网 >VB Dotnet

热点推荐