分类：电脑/网络-软件
问题：vb+sql高手来看看啊If"selectcount(*)fro 
If "select count(*) f 用户表 from 用户表 where 用户名='" & Trim(Text1.Text) & "' and 密码='" & Trim(Text2.Text) & "'" = 0 Then MsgBox "密码输入不正确", vbExclamation + vbCritical, "警告"   Unload Me Exit SubEnd If为什么上面这样不行，请给出正确的写法要求是:当某用户的密码输入有误时，给出警告以下是连接sql用户表的代码，应该正确的PrivIf "select count(*) f 用户表 from 用户表 where 用户名='" & Trim(Text1.Text) & "' and 密码='" & Trim(Text2.Text) & "'" = 0 Then MsgBox "密码输入不正确", vbExclamation + vbCritical, "警告"   Unload Me Exit SubEnd If为什么上面这样不行，请给出正确的写法要求是:当某用户的密码输入有误时，给出警告以下是连接sql用户表的代码，应该正确的Private Sub Form_Load()Adodc1.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=stu;Data Source=" & SQL_ServerNameAdodc1.RecordSource = "select * from 用户表"Adodc1.RefreshEnd Sub
回答：看来LZ对于的ADO不是太熟悉啊，如果要使用ADO，首先需要在“工程”菜单中的“引用”中添加ADO库的引用，一般的可以使用“Microsoft ActiveX Data Objects 2.0 Library”。根据开发需求的不同，一般需要定义一个或多个ADO数据库的连接及记录集对象（ADODB.Connection，ADODB.Recordset），最好定义为全局，方便不同模块使用。在LZ的问题中，也可以定义为局部变量，仅仅是检索用户登录信息，用完即可关闭。LZ的问题在于，仅仅是使用了一个ADO控件，与数据库建立了一个连接。但是在登录时，使用了SQL检索语句，这个检索是没有数据库上下文的，所以根本就不可能到数据库中去检索数据。 所以那个控件是可以不要的。直接在登录按钮中Command1进行代码处理即可。下面的代码已经测试通过，请参考：Private Sub Command1_Click()        Dim con As New ADODB.Connection    Dim rs As New ADODB.Recordset        con.ConnectionString = "Provider=MSDASQL.1;Persist Security Info=False;Data Source=mmd"  '这个连接串是偶测试用的，可以替换为LZ所需要的连接串    con.Open        rs.CursorLocation = adUseClient    rs.Open "select * from 用户表 where 用户名='" & Trim(Text1.Text) & "' and 密码='" & Trim(Text2.Text) & "'", con        If rs.RecordCount = 0 Then        MsgBox "密码输入不正确!", vbExclamation + vbCritical, "警告"        Unload Me        Exit Sub    Else        MsgBox "密码输入正确!"    End If         rs.Close    con.Close     End SubPS：Form_Load中的代码可以不要，除非那个ADO控件有用。