将界面与数据库的图书信息表,连接起来,然后通过设置combo1控件里的text(查询类型),与文本控件checkcont的text(查询关键字),然后按(查询),把查询结果显示在datagrid里。但我按了(查询)后,datagrid里只在第一行显示了(书号,存储日期,作者,出版社)等列名,但对应的书号是多少,作者是什么都没显示出来。
代码如下:
Dim colName As String
Dim colValue As String
Dim strWhere As StringPrivate Sub Form_Load()
     Combo1.AddItem ("题名")
     Combo1.AddItem ("分类编号")
     Combo1.AddItem ("图书编号")
     Combo1.AddItem ("作者")
     Combo1.AddItem ("ISBN号")
     Combo1.AddItem ("出版社")
     Combo1.ListIndex = 0
     
     colName = Combo1.Text
     colValue = checkCont.Text
End Sub
Private Sub CmdCx_Click()Adodc1.ConnectionString     ="Driver={sqlserver};server=A762D89F97CC429;uid=sa;pwd=3172870123;database=library"
Adodc1.CommandType = adCmdText
Adodc1.CursorLocation = adUseClient
Adodc1.LockType = adLockPessimisticstrWhere = " where " & colName & " like ' % " & colValue & " % ' "
Adodc1.RecordSource = "select * from 图书信息" & strWhere & " order by 图书编号"
Adodc1.Refresh
Set DataGrid1.DataSource = Adodc1.Recordset
DataGrid1.Refreshend sub
肯定是哪里错了,但我弄了一天都没能搞定。
高手,高手们,指点下下啊!
谢了!

解决方案 »

  1.   

    "datagrid里只在第一行显示了(书号,存储日期,作者,出版社)等列名"
    如果真是这样的话,说明没有"符合条件"的记录
      

  2.   

    设断点看看 colValue 是什么值。或试试:
    strWhere = ""
    Adodc1.RecordSource   =   "select   *   from   图书信息"   &   strWhere   &   "   order   by   图书编号" 
    Adodc1.Refresh 
      

  3.   

    怎么可能把
    colName   =   Combo1.Text 
    colValue   =   checkCont.Text这两行写到form Load事件里呢?
    应该写到cmdcx Click事件里啊
    这样你选择查询方式和输入查询值才能得到
      

  4.   

    试了of123的办法,有显示出来啊,按编号或图书数量的都能显示出来。是不是strWhere   =   "   where   "   &   colName   &   "   like   '   %   "   &   colValue   &   "   %   '   "   这里错了,但应该没错的?
      

  5.   

    先确定上一下有没有查到符合条件的记录,如果是没有记录,那么就不是dbgrid的问题。
      

  6.   

    有啊,比如:分类编号是01,02,03;选择(分类编号),然后我在文本控件checkcont里输入01,
    这样还是只显示出一行列名!
      

  7.   


    Private Sub CmdCx_Click() Adodc1.ConnectionString ="Driver={sqlserver};server=A762D89F97CC429;uid=sa;pwd=3172870123;database=library" 
    Adodc1.CommandType = adCmdText 
    Adodc1.CursorLocation  = adUseClient 
    Adodc1.LockType = adLockPessimistic colName = Combo1.Text 
    colValue = checkCont.TextstrWhere = " where " & colName & " like '%" & colValue & "%' " 
    Adodc1.RecordSource = "select * from 图书信息" & strWhere & "order by 图书编号" 
    Adodc1.Refresh 
    Set DataGrid1.DataSource = Adodc1.Recordset 
    DataGrid1.Refresh End Sub 
      

  8.   

    SQL 库中将 % 换成 * 号试试。
      

  9.   

    你用一条SQL语句写不行么 写成这样错你也找不到