就是我在dbgrid中点击某条记录,该条记录信息将自动显示在edit等控件中,这段代码该怎么写?
还有我写的这条sql语句有什么错误,帮忙看一下
 select count(*) from tablename where fieldname like '%'+edit.text+'%'
谢谢各位指教了!!!

解决方案 »

  1.   

    sql语句有错最后的 '%'+edit.text+'%' 外面还少了一层 单引号
    可以:quotedstr('%'+edit.text+'%')
      至于你的edit是一个edit显示某条记录的所有字段
      还是有好多个edit显示各自的字段
      

  2.   

    你在dbgrid的click里写上:例子:
      edit1。text:=adotable1.fieldbyname('id').asstring;
    ....
      

  3.   

    用DBEdit不就行了吗,你不想编辑就用DBText,其他的就要自己赋值。
    query1.sql.add('select count(*) from tablename where fieldname like ''%'+edit.text+'%''';
      

  4.   

    sql 语句的错误:模糊查询适用于字符串,我想你的Fieldname应该是字符串类型的字段吧,
    str:'select count(*) from tablename where fieldname like ''%'+edit.text+'%''';
    这样就不会出错了,
    点DBGRID显示记录,必须是一个文本框显示一个字段
    可以这么写
    在DBGRID的DLCLINK或CLINK事件中写上 
      edit1.text:=clientdataset.fields.fieldvalue['fieldname'];
    clientdataset为DBGRID的连接数据集
      

  5.   

    比方说你的DbGrid连接的是Query1的话,点击DbGrid后数据出现在Edit上的代码是:Edit1.text := Query1.Fiedlbyname('你要的列名').Value;第二个问题是:Query1.Sql.add('select count(*) from tablename where fieldname like %' + Edit1.text + '%');或者你把%换成#39也可以
      

  6.   

    这样写是对的'select count(*) from tablename where fieldname like ''%'+edit.text+'%''';对编辑框付值时用:Edit1.text := Query1.Fiedlbyname('你要的列名').Asstring;
      

  7.   

    使用数据感知控件,并使它们的数据源与DBGrid相同即可
      

  8.   

    我来谈谈第2个问题:1、可以用DBEdit等数据感知控件,一旦它与数据访问控件关联后,就会自动更新显示的。2、可以在数据访问控件(如Table)等的AfterScroll事件中编写代码,为Edit等非数据感知控件赋值,如:
    edit1.Text:=ADOTable1.FieldByName('name').AsString;
      

  9.   

    可以在daatsource中写: edit1.Text:=ADOTable1.FieldByName('name').AsString;
    为非数据感知控件赋值: