我做一个人事系统,可以用编号,姓名等对数据库进行查询,在用编号进行查询时,select * from students where state=true and numbers= & val(txtnumber.text)是可以的,但是我用姓名查找时,总是不行。select * from students where state=true and names= & txtname.text。我总检查不出错在哪里,你们帮我看一下,如何以文本为条件查找数据啊。

解决方案 »

  1.   

    sqlstr="select * from students where state=true and names='" & txtname.text & "'"
    要把文本用'括起来
      

  2.   

    还是不行啊,说至少一个参数没有被负值。
    If optbh.Value = True And txtbh.Text <> "" Then             '按编号查找是可以的。
            sqlstr = "select * from laogai where gbjdq=true and gbh=" & txtbh.Text
    ElseIf optxm.Value = True And txtxm.Text <> "" Then        '按姓名查找不可以。
            sqlstr = "select * from laogai where gbjdq=true and gxm='" & txtxm.Text & "'"
    end if
      

  3.   

    ElseIf optxm.Value = True And txtxm.Text <> "" Then
    //调试看看判断条件满足吗?
      

  4.   

    调试了一下是这样的:我查找一个叫杨洋的人
    sqlstr="select * from laogai where gbjdq=true and gxm=杨洋"这个查找语句有问题吗?
      

  5.   

    如果是这样子:sqlstr="select * from laogai where gbjdq=true and gxm='杨洋'"
    就对了字符串两边都加上 ' 号
      

  6.   

    可是真正的语句是这样的啊:sqlstr = "select * from laogai where gbjdq=true and gxm='" & txtxm.Text & "'"    这样不是已经加了'号了吗?怎么不行啊,急死了啊。
      

  7.   

    检查一下数据表的字段 gbjdq 是 True/False 还是 Yes/No.或者在SQL语句中不要gbjdq=true ,调试一下能否找到你要找的记录
      

  8.   


    Select * From laogai 
    Where gbjdq=true And gxm='"& Trim(txtxm.Text) &"'"
      

  9.   

    以下语句试试:
    cSql = "select * from students where state=true and " _
         & IIf(Trim(txtnumber.Text) <> "", "numbers= " + Trim(txtnumber.Text), " 0=0 ")
    cSql = "select * from students where state=true and " _
         & IIf(Trim(txtname.Text) <> "", " names= '" + Trim(txtname.Text) + "'", " 0=0 ")
      

  10.   

    看一下是不是字段名的问题,我碰到过这样的问题找了半天是字段名和数据库里面的不一样,也可以字段名加“[]“试一下
    sqlstr="select * from students where [state]=true and [names]='" & txtname.text & "'"
    不过我是这样写的:
    sqlstr="select * from students where [state]=true" and "[names]='" & txtname.text & "'""
    楼主你试试看!