怎么得到dbgrid中指定的数据?

pobosskey 2003-10-20 10:09:30
我有一个dbgrid字段

这样排列 学号 姓名 班级
01 王三 1
02 三三 2
03 撒们 3

我的dbgrid中的slectrow是true属性

假如我的第二行被选中了, 那么怎么得到我选中行的 学号,姓名,班级的具体数值?
...全文
129 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
我不懂电脑 2003-10-20
  • 打赏
  • 举报
回复
就用mabc(甲骨文) 的
ADOQuery1->FieldByName("学号")->AsString;
ADOQuery1->FieldByName("姓名")->AsString;
ADOQuery1->FieldByName("班级")->AsString;
blankman 2003-10-20
  • 打赏
  • 举报
回复
AnsiString xingming="zhangsan";

可以这样用 xingming = ADOQuery1->FieldByName("姓名")->AsString;
也可以这样 ADOQuery1->FieldByName("学号")->AsString = xingming;

不过后一种不推荐,推荐
ADOQuery1->SQL->Text = AnsiString("update databasename ")
+ "set 姓名='" + xingming + "' "
+ "where 学号='000000'";
ADOQuery1->ExecSQL();
影子传说 2003-10-20
  • 打赏
  • 举报
回复
如果你的dbgird设置可以选择多行,可以用
GotoBookmark跳转,然后一行行读出来:

void __fastcall TForm1::Button1Click(TObject *Sender)
{
if (DBGrid1->SelectedRows->Count > 0)
{
AnsiString s = "";
TDataSet *pDS = DBGrid1->DataSource->DataSet;
for (int i=0; i < DBGrid1->SelectedRows->Count; i++)
{
pDS->GotoBookmark((void *)DBGrid1->SelectedRows->Items[i].c_str());
for (int j = 0; j < pDS->FieldCount; j++)
{
if (j>0)
s = s+", ";

s = s + pDS->Fields->Fields[j]->AsString;
}
ListBox1->Items->Add(s);
s = "";
}
}
}
GodBirdFlying 2003-10-20
  • 打赏
  • 举报
回复
这个要读取与数据感知控件DBGrid 连接的DataSet中的数据,如 上面两位的代码.
littleB 2003-10-20
  • 打赏
  • 举报
回复
在dbgrid的click事件中写如下代码
String s;
s=ClientDataSet1->FieldByName("字段名")->AsString;
mabc 2003-10-20
  • 打赏
  • 举报
回复
ADOQuery1->FieldByName("学号")->AsString;
ADOQuery1->FieldByName("姓名")->AsString;
ADOQuery1->FieldByName("班级")->AsString;
即可,当前选中的值

13,824

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧