7 个解决方案
#1
从数据源取。TABLE OR QUERY。
#2
为什么不从记录集中直接取???
#3
因为我的DBGrid是允许用户在界面上修改的。而且这个DBGrid并没有列出Table中的所有列。因此我需要把这几列数据取出,然后在存到数据库中。所以现在DBGrid中的数据和数据库中的数据是不一样的。
我想完成的功能是,用户DBGrid中修改数据然后按下“保存”按钮将数据保存到数据库中。
我想为了完成这个操作。我首先应当把DBGrid中的数据取出,然后在把数据库中相同主键的记录删除,最后从新插入用户修改后的数据。其中有一个主键值是由Edit的值确定的。所以必须用手动保存。
我想完成的功能是,用户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;
}
}
对于你上面的回复,你的表有主键吗,你在把数据写回数据库的时候按主键信息全部都更新就可以了。
很简单,对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中的数据是不同的。
还有上面的方法是在表中取数,而我是要在DBGrid中取数。应为表中的数据和DBGrid中的数据是不同的。
#6
方法一样,如果你不清楚,看看帮助。对于从DBGrid中取数,是你概念不清楚,DBGrid本身无法存储数据,它显示的是关联数据源的数据。看你的意思,你应该是显示了Query的结果集。
#7
多谢。我今天试了试stringgrid,希望能成功
#1
从数据源取。TABLE OR QUERY。
#2
为什么不从记录集中直接取???
#3
因为我的DBGrid是允许用户在界面上修改的。而且这个DBGrid并没有列出Table中的所有列。因此我需要把这几列数据取出,然后在存到数据库中。所以现在DBGrid中的数据和数据库中的数据是不一样的。
我想完成的功能是,用户DBGrid中修改数据然后按下“保存”按钮将数据保存到数据库中。
我想为了完成这个操作。我首先应当把DBGrid中的数据取出,然后在把数据库中相同主键的记录删除,最后从新插入用户修改后的数据。其中有一个主键值是由Edit的值确定的。所以必须用手动保存。
我想完成的功能是,用户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;
}
}
对于你上面的回复,你的表有主键吗,你在把数据写回数据库的时候按主键信息全部都更新就可以了。
很简单,对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中的数据是不同的。
还有上面的方法是在表中取数,而我是要在DBGrid中取数。应为表中的数据和DBGrid中的数据是不同的。
#6
方法一样,如果你不清楚,看看帮助。对于从DBGrid中取数,是你概念不清楚,DBGrid本身无法存储数据,它显示的是关联数据源的数据。看你的意思,你应该是显示了Query的结果集。
#7
多谢。我今天试了试stringgrid,希望能成功