DBGrid显示了数据库的某几行数据,我想从DBGrid的第一行一直遍历到最后一行,怎么做?

时间:2022-04-19 15:04:19
各位高手:我的DBGrid显示了数据库的某几行数据,我想从DBGrid的第一行一直遍历到最后一行,怎么做?我想把每个cell中的数据都取出来,怎么作?

7 个解决方案

#1


从数据源取。TABLE OR QUERY。

#2


为什么不从记录集中直接取???

#3


因为我的DBGrid是允许用户在界面上修改的。而且这个DBGrid并没有列出Table中的所有列。因此我需要把这几列数据取出,然后在存到数据库中。所以现在DBGrid中的数据和数据库中的数据是不一样的。
我想完成的功能是,用户DBGrid中修改数据然后按下“保存”按钮将数据保存到数据库中。
我想为了完成这个操作。我首先应当把DBGrid中的数据取出,然后在把数据库中相同主键的记录删除,最后从新插入用户修改后的数据。其中有一个主键值是由Edit的值确定的。所以必须用手动保存。

#4


"我想从DBGrid的第一行一直遍历到最后一行,怎么做"
很简单,对DBGrid关联的数据源用循环就可以了。eg:
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("select * from 表");
ADOQuery1->Open();
ADOQuery1->First();
for (int i=0;i<ADOQuery1->RecordCount;i++)
{
    //your code;
    ADOQuery1->Next();
}
"我想把每个cell中的数据都取出来,怎么作"
也很简单,在上面的循环中多加一个循环,
for (int i=0;i<ADOQuery1->RecordCount;i++)
{
   for (int j=0;j<ADOQuery1->FieldCount;j++)
   {
       String tmpStr;
       tmpStr = ADOQuery1->Fields->Fields[j]->AsString;
   }
}
对于你上面的回复,你的表有主键吗,你在把数据写回数据库的时候按主键信息全部都更新就可以了。

#5


一个菜菜的问题,我用的不是ADOQuery,我用的是Query,上面的方法行吗?
还有上面的方法是在表中取数,而我是要在DBGrid中取数。应为表中的数据和DBGrid中的数据是不同的。

#6


方法一样,如果你不清楚,看看帮助。对于从DBGrid中取数,是你概念不清楚,DBGrid本身无法存储数据,它显示的是关联数据源的数据。看你的意思,你应该是显示了Query的结果集。

#7


多谢。我今天试了试stringgrid,希望能成功

#1


从数据源取。TABLE OR QUERY。

#2


为什么不从记录集中直接取???

#3


因为我的DBGrid是允许用户在界面上修改的。而且这个DBGrid并没有列出Table中的所有列。因此我需要把这几列数据取出,然后在存到数据库中。所以现在DBGrid中的数据和数据库中的数据是不一样的。
我想完成的功能是,用户DBGrid中修改数据然后按下“保存”按钮将数据保存到数据库中。
我想为了完成这个操作。我首先应当把DBGrid中的数据取出,然后在把数据库中相同主键的记录删除,最后从新插入用户修改后的数据。其中有一个主键值是由Edit的值确定的。所以必须用手动保存。

#4


"我想从DBGrid的第一行一直遍历到最后一行,怎么做"
很简单,对DBGrid关联的数据源用循环就可以了。eg:
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("select * from 表");
ADOQuery1->Open();
ADOQuery1->First();
for (int i=0;i<ADOQuery1->RecordCount;i++)
{
    //your code;
    ADOQuery1->Next();
}
"我想把每个cell中的数据都取出来,怎么作"
也很简单,在上面的循环中多加一个循环,
for (int i=0;i<ADOQuery1->RecordCount;i++)
{
   for (int j=0;j<ADOQuery1->FieldCount;j++)
   {
       String tmpStr;
       tmpStr = ADOQuery1->Fields->Fields[j]->AsString;
   }
}
对于你上面的回复,你的表有主键吗,你在把数据写回数据库的时候按主键信息全部都更新就可以了。

#5


一个菜菜的问题,我用的不是ADOQuery,我用的是Query,上面的方法行吗?
还有上面的方法是在表中取数,而我是要在DBGrid中取数。应为表中的数据和DBGrid中的数据是不同的。

#6


方法一样,如果你不清楚,看看帮助。对于从DBGrid中取数,是你概念不清楚,DBGrid本身无法存储数据,它显示的是关联数据源的数据。看你的意思,你应该是显示了Query的结果集。

#7


多谢。我今天试了试stringgrid,希望能成功