在SQL数据中有一个很重要的select语句,但在VB编程中,不知道能不能使用它呢?
如果能,哪些方式中才能呢,DATA控件、ADO控件、数据访问对象、还是使用数据环境?请大家帮帮忙,我是新手!

解决方案 »

  1.   

    use commandset , i forget
      

  2.   

    dim Rs as new adodb.recordeset
    dim mysql as string
    dim con as new adodb.connnection
    con.connectionstring="..."
    con.open
    mysql="..."
    Rs.open mysql,con,adopendynamic,adlockoptimistic
      

  3.   

    Public Function ExecuteSQL(sql As String) As ADODB.Recordset
    Dim cn As ADODB.Connection
    Dim rst As ADODB.Recordset
    Dim msg As String
    On Error GoTo executesql_error
    Set cn = New ADODB.Connection
    'cn.Open "Provider=MSDASQL.1;Persist Security Info=False;Data Source=CY"
    'cn.Open "Provider=SQLOLEDB;Driver={SQL Server};Server=LPY;Uid=sa;Pwd=;database=CY" '通用行连接也可以适应WIN98
    cn.Open "Driver={SQL Server};Server=LPY;Uid=sa;Pwd=;database=CY"
    Set rst = New ADODB.Recordset
    rst.Open Trim$(sql), cn, adOpenKeyset, adLockOptimistic
    Set ExecuteSQL = rst
    executesql_exit:
    Set rst = Nothing
    Set cn = Nothing
    Exit Function
    executesql_error:
    msg = "错误原因:" & Err.Description
    Resume executesql_exit
    End FunctionPrivate Sub cmd_true_Click()
    If Trim(txt_name.Text) = "" Then
    MsgBox "请输入用户名~!~", vbOKOnly + vbExclamation, "注意"
    txt_name.SetFocus
    Exit Sub
    Else
    If Len(Trim(txt_name.Text)) > 10 Then
    MsgBox "对不起,密码有效位仅为10位,请想好在输入,谢谢合作~!~", vbOKOnly + vbExclamation, "注意"
    txt_name.SetFocus
    txt_name.Text = ""
    Exit Sub
    End If
    sql = "select*from Cuser"
    Set rs = ExecuteSQL(sql)
    While rs.EOF = False
    If Trim(rs.Fields(0)) = Trim(txt_name.Text) Then
    MsgBox "此用户已存在,请重新命名~!~", vbOKOnly + vbExclamation, "注意"
    txt_name.SetFocus
    txt_name.Text = ""
    txt_pw.Text = ""
    txt_conpw.Text = ""
    Exit Sub
    Else
    rs.MoveNext
    End If
    Wend
    End If
    If Trim(txt_pw.Text) <> Trim(txt_conpw.Text) Then
    MsgBox "对不起,您两次输入的密码不一样,请重新输入~!~", vbOKOnly + vbExclamation, "注意"
    txt_pw.SetFocus
    txt_pw.Text = ""
    txt_conpw.Text = ""
    Else
    If Trim(txt_pw.Text) = "" Then
    MsgBox "对不起,密码不能为空~!~", vbOKOnly + vbExclamation, "注意"
    txt_pw.SetFocus
    Else
    If Len(txt_pw.Text) > 10 Then
    MsgBox "对不起,密码有效位仅为10位,请想好在输入,谢谢合作~!~", vbOKOnly + vbExclamation, "注意"
    txt_pw.SetFocus
    txt_pw.Text = ""
    txt_conpw.Text = ""
    Exit Sub
    Else
    rs.AddNew
    rs.Fields(0) = Trim(txt_name.Text)
    rs.Fields(1) = Trim(txt_pw.Text)
    If Check1.Value = 1 Then
    rs.Fields(2).Value = "1"
    Else
    rs.Fields(2).Value = "0"
    End If
    rs.Update
    txt_name.Text = ""
    txt_pw.Text = ""
    txt_conpw.Text = ""
    rs.Close
    txt_name.SetFocus
    frm_umanagement.Adodc1.Refresh
              Set frm_umanagement.DataList1.DataSource = frm_umanagement.Adodc1
                   frm_umanagement.DataList1.DataField = "id"
              Set frm_umanagement.DataList1.RowSource = frm_umanagement.Adodc1
                   frm_umanagement.DataList1.ListField = "id"
                   frm_umanagement.DataList1.Refresh
                   'frm_umanagement.cmd_delete.Enabled = False
    End If
    End If
    End If
    Check1.Value = 0
    End Sub
    ADO 的例子
      

  4.   

    在access中的sql语句在vb中都可以用,但是在sqlserver中的sql语句有些在vb中不行,大多数还是能用的。
      

  5.   

    我也是新手,据我所知你不能对Data和Ado使用Sql语句,但可以对数据环境使用sql,如上面列出的
    rs.open "select * from table" cn.