怎么样在DBGrid中定位到指定字段为指定值的那一行?

wenw 2003-05-21 06:15:56
菜问题:怎么样在DBGrid中定位到指定字段为指定值的那一行?
...全文
38 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
wenw 2003-05-23
  • 打赏
  • 举报
回复
问题已经解决,是我的DBGrid1中没有使用数据源中"文件名"这一个字段,所以出错了。
windindance 2003-05-23
  • 打赏
  • 举报
回复
if (!DBGrid1->DataSource->DataSet->Locate("文件名", OpenDialog1->FileName,Opts))
wenw 2003-05-23
  • 打赏
  • 举报
回复
请帮助我!为什么会这样?
liux330 2003-05-22
  • 打赏
  • 举报
回复
就是查询
Tinaf 2003-05-22
  • 打赏
  • 举报
回复
用Locate方法试试看,如果有该项纪录就返回true,并直接定位于该行
yyfzy 2003-05-22
  • 打赏
  • 举报
回复
这不就是查询吗?
wenw 2003-05-22
  • 打赏
  • 举报
回复
TLocateOptions Opts;
Opts.Clear();
Opts <<loCaseInsensitive;
Variant locvalues;
locvalues = Variant(OpenDialog1->FileName);
if (!DBGrid1->DataSource->DataSet->Locate("文件名", &locvalues,Opts))
上面的程序错在哪儿了呢?
wenw 2003-05-22
  • 打赏
  • 举报
回复
Locate应该是可用的,可总提示排序无法进行是为什么呢?
gjgj3368 2003-05-21
  • 打赏
  • 举报
回复
mark
swites 2003-05-21
  • 打赏
  • 举报
回复
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 = "";
}
}

1,178

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 数据库及相关技术
社区管理员
  • 数据库及相关技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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