关于DBGrid的问题!急求??请大侠帮帮忙!!!

时间:2022-09-05 21:14:08
我用DBGrid和数据库相连,现在我要通过输入Edit中的数据来查找和DBGrid中的一个字段中内容相同的一行,然后,设置此行为当前行,处于选中状态,并且颜色发生改变?请高手帮忙??
比如说,DBGrid中有,姓名,学号,年龄等字段,我在Edit中输入,姓名,那么在DBGrid中查找(不在数据库中找,而是和DBGrid中的姓名字段相比较来查找),找到此条记录,让这行处于当前行,选中状态,颜色发生改变??请问要怎么做,最好给点原代码!

6 个解决方案

#1


在DBGrid中查找,实质上就是在与之相连接的DataSet中查找,可用DataSet的Filter或者是用一个循环,比对DataSet的字段段值与Edit的值,看是否相符。

#2


如果通过用ADOTable和数据库连接的话,查询DBGrid的内容,可以用ADOTable的Filter做筛选,筛选条件是Edit中的内容。

#3


兄弟,这样:
DBGridEh3.DataSource.DataSet.First;
  while not DBGridEh3.DataSource.DataSet.Eof do
    begin
      if DBGridEh3.DataSource.DataSet.Fields[1].AsString=Trim(RzEdit6.Text) then
       begin
         ShowMessage('表中已经有相同的记录');
         RzButtonEdit2.SetFocus;
         Exit;
       end;
      DBGridEh3.DataSource.DataSet.Next;
    end;
你转为BCB就可以了,很简单的

#4


关键是颜色发生改变,而且处于当前行????

#5


这样弄弄看定位到一行;改变颜色
void __fastcall TForm1::btn1Click(TObject *Sender)                   
{
                       TLocateOptions Opts;
                        AnsiString s_use ;         
                        s_use="select * from tablename ";
                        DM->Query1->Close();
                        DM->Query1->SQL->Clear();
                        DM->Query1->SQL->Add(s_lsuse);
                        DM->Query1->Open();

                        Opts.Clear();
                        Opts << loPartialKey;
                        DM->WaterQuery1->Locate("姓名", Edit1->Text, Opts);
                }

#6


改变颜色
DBGrid1->Canvas->Brush->Color=clRed;

#1


在DBGrid中查找,实质上就是在与之相连接的DataSet中查找,可用DataSet的Filter或者是用一个循环,比对DataSet的字段段值与Edit的值,看是否相符。

#2


如果通过用ADOTable和数据库连接的话,查询DBGrid的内容,可以用ADOTable的Filter做筛选,筛选条件是Edit中的内容。

#3


兄弟,这样:
DBGridEh3.DataSource.DataSet.First;
  while not DBGridEh3.DataSource.DataSet.Eof do
    begin
      if DBGridEh3.DataSource.DataSet.Fields[1].AsString=Trim(RzEdit6.Text) then
       begin
         ShowMessage('表中已经有相同的记录');
         RzButtonEdit2.SetFocus;
         Exit;
       end;
      DBGridEh3.DataSource.DataSet.Next;
    end;
你转为BCB就可以了,很简单的

#4


关键是颜色发生改变,而且处于当前行????

#5


这样弄弄看定位到一行;改变颜色
void __fastcall TForm1::btn1Click(TObject *Sender)                   
{
                       TLocateOptions Opts;
                        AnsiString s_use ;         
                        s_use="select * from tablename ";
                        DM->Query1->Close();
                        DM->Query1->SQL->Clear();
                        DM->Query1->SQL->Add(s_lsuse);
                        DM->Query1->Open();

                        Opts.Clear();
                        Opts << loPartialKey;
                        DM->WaterQuery1->Locate("姓名", Edit1->Text, Opts);
                }

#6


改变颜色
DBGrid1->Canvas->Brush->Color=clRed;