vb update 语句怎么执行 80
我怎么让这个语句更新到数据库里面啊
我的目的就是每次登陆的时候吧这个数据更新到数据库里!这是我想到的用户上线的一个思路!
各位谁还有没有就是和QQ一样的只要用户上线了就变红,下线就变灰色,请吧代码写出来谢谢 展开
推荐于2017-09-28 · 知道合伙人软件行家
VB的Update 方法有多种用途:
Update 方法 (ADO),保存对 Recordset 对象的当前记录所做的所有更改。
语法
recordset.Update Fields, Values
参数
Fields 可选。变体型,代表单个名称;或变体型数组,代表需要修改的字段(单个或多个)名称或序号位置。
Values 可选。变体型,代表单个值;或变体型数组,代表新记录中字段(单个或多个)值。
说明
使用 Update 方法保存自从调用 AddNew
方法,或自从现有记录的任何字段值发生更改之后,对 Recordset 对象的当前记录所作的所有更改。Recordset
对象必须支持更新。Update 和 CancelUpdate 方法范例
该范例连同 CancelUpdate 方法说明 Update 方法。
Public Sub UpdateX()
Dim rstEmployees As ADODB.Recordset
Dim strOldFirst As String
Dim strOldLast As String
Dim strMessage As String
' 使用雇员表中的姓名打开记录集。
strCnn = "Provider=sqloledb;" & _
"Data Source=srv;Initial Catalog=pubs;User Id=sa;Password=; "
Set rstEmployees = New ADODB.Recordset
rstEmployees.CursorType = adOpenKeyset
rstEmployees.LockType = adLockOptimistic
rstEmployees.Open "SELECT fname, lname " & _
"FROM Employee ORDER BY lname", strCnn, , , adCmdText
' 储存原始数据。
strOldFirst = rstEmployees!fname
strOldLast = rstEmployees!lname
' 更改编辑缓冲区中的数据。
rstEmployees!fname = "Linda"
rstEmployees!lname = "Kobara"
' 显示缓冲区的内容并获取用户输入。
strMessage = "Edit in progress:" & vbCr & _
" Original data = " & strOldFirst & " " & _
strOldLast & vbCr & " Data in buffer = " & _
rstEmployees!fname & " " & rstEmployees!lname & vbCr & vbCr & _
"Use Update to replace the original data with " & _
"the buffered data in the Recordset?"
If MsgBox(strMessage, vbYesNo) = vbYes Then
rstEmployees.Update
Else
rstEmployees.CancelUpdate
End If
' 显示结果数据。
MsgBox "Data in recordset = " & rstEmployees!fname & " " & _
rstEmployees!lname
' 恢复原始数据,因为这只是演示。
If Not (strOldFirst = rstEmployees!fname And _
strOldLast = rstEmployees!lname) Then
rstEmployees!fname = strOldFirst
rstEmployees!lname = strOldLast
rstEmployees.Update
End If
rstEmployees.Close
End Sub
Public Sub UpdateX2()
Dim cnn1 As ADODB.Connection
Dim rstEmployees As ADODB.Recordset
Dim strEmpID As String
Dim strOldFirst As String
Dim strOldLast As String
Dim strMessage As String
' 打开连接。
Set cnn1 = New ADODB.Connection
strCnn = "Provider=sqloledb;" & _
"Data Source=srv;Initial Catalog=pubs;User Id=sa;Password=; "
cnn1.Open strCnn
' 使用雇员表中的数据打开记录集。
Set rstEmployees = New ADODB.Recordset
rstEmployees.CursorType = adOpenKeyset
rstEmployees.LockType = adLockOptimistic
rstEmployees.Open "employee", cnn1, , , adCmdTable
rstEmployees.AddNew
strEmpID = "B-S55555M"
rstEmployees!emp_id = strEmpID
rstEmployees!fname = "Bill"
rstEmployees!lname = "Sornsin"
' 显示缓冲区内容并获取用户输入。
strMessage = "AddNew in progress:" & vbCr & _
"Data in buffer = " & rstEmployees!emp_id & ", " & _
rstEmployees!fname & " " & rstEmployees!lname & vbCr & vbCr & _
"Use Update to save buffer to recordset?"
If MsgBox(strMessage, vbYesNoCancel) = vbYes Then
rstEmployees.Update
' 转到新记录并显示结果数据。
MsgBox "Data in recordset = " & rstEmployees!emp_id & ", " & _
rstEmployees!fname & " " & rstEmployees!lname
Else
rstEmployees.CancelUpdate
MsgBox "No new record added."
End If
' 删除新数据,因为这只是演示。
cnn1.Execute "DELETE FROM employee WHERE emp_id = '" & strEmpID & "'"
rstEmployees.Close
End SubUpdate 方法(远程数据),将复制缓冲区行的内容保存到一个指定的可更新的
rdoResultset 对象中,并废弃复制缓冲区。语法
object.Update
object 所在处代表对象表达式,其值为“应用于”列表中的一个对象。
AddNew、Update、CancelUpdate 方法示例
下面的示例用以说明使用 AddNew
方法在基本表中添加一个新行。该例假定有权对这个表进行读写访问,所提供的列数据符合与该表相关的规则及其它的约束条件,并且该表有唯一的索引。用于操作的数据值从窗体的三个
TextBox 控件中获得。注意这个表的唯一的关键字不在这儿提供,而自动提供的是—一个标识列。Option Explicit
Dim er As rdoError
Dim cn As New rdoConnection
Dim qy As New rdoQuery
Dim rs As rdoResultset
Dim col As rdoColumn
Private Sub AddNewJob_Click()
On Error GoTo ANEH
With rs
.AddNew
!job_desc = JobDescription
!min_lvl = MinLevel
!max_lvl = MaxLevel
.Update
End With
Exit Sub
UpdateFailed:
MsgBox "Update did not suceed."
rs.CancelUpdate
Exit Sub
A
NEH:
Debug.Print Err, Error
For Each er In rdoErrors
Debug.Print er
Next
Resume UpdateFailed
End Sub
Private Sub Form_Load()
cn.CursorDriver = rdUseOdbc
cn.Connect = "uid=;pwd=;server=sequel;" _
& "driver={SQL Server};database=pubs;dsn='';"
cn.EstablishConnection
With qy
.Name = "JobsQuery"
.SQL = "Select * from Jobs"
.RowsetSize = 1
Set .ActiveConnection = cn
Set rs = .OpenResultset(rdOpenKeyset, _
rdConcurRowver)
Debug.Print rs.Updatable
End With
Exit Sub
End Sub
Public Sub Update(ByVal CurrentValue As Long) m_currentValue = CurrentValue m_currentBarLength = CInt((m_currentValue / m_maximumValue) * m_length) Refresh() End Sub 这个VB Update方法使用一个值作参数(在此是指当前刚刚复制的文件数)。我设置成员m_currentValue,然后计算m_currentBarLength。计算的结果为进度条当前应该覆盖的列数。
最后,我调用Refresh方法,它又调用UpdatePercentComplete、UpdateProgressBar和UpdateMessageBar方法。
因为所有这三个方法功能相类似,所以我将集中讨论UpdateProgressBar方法:
Private Sub UpdateProgressBar() Dim originalForegroundColor As ConsoleConsoleColor = Console.ForegroundColor Dim originalBackgroundColor As ConsoleConsoleColor = Console .BackgroundColor Console.ForegroundColor = ConsoleColor.Black Console.BackgroundColor = ConsoleColor.Green Console.SetCursorPosition(m_left + 1 m_progressBarRow) Dim progress As New String("O", m_currentBarLength) Console.Write(progress) Console.ForegroundColor =originalForegroundColor Console.BackgroundColor = originalBackgroundColor End Sub 首先,该代码保存当前的前景和背景颜色。然后,它把ForegroundColor属性设置为黑色,把BackgroundColor属性设置为绿色。在把光标放置到进度条的左边缘后,它打印一串长度为m_currentBarLength的“O”。
其它问题
这个DirCopy应用程序,虽然有些用处,但是还远非成品。为了使其更为强壮,还需要增加大量的错误处理方式。你还可以改进ConsoleProgressBar类以实现更灵活的控制。下列是一些可能的改进:
◆允许控制进度条的位置和长度
◆允许百分比完成区域放到你选择的任何位置
◆允许定制进度条中的消息
◆添加一个选项以选择水平的或垂直的进度条
---------------
如果用户量大的话 数据库服务器负担将会很重,建议搞张内存表,速度快点,
你可以用Adodb 实现的
链接:
http://zhidao.baidu.com/question/38612791.html?si=1
秒杀乱回答