简单问题,取出的字段值为空?

littlestcc 2005-01-20 10:35:13
创建一个connection,一个dataset,配置略,连接都ok

ADODataSet1->Open();
//显示ADODataSet1->RecordCount,表里有一条记录,这里会正常显示出来1

while(!ADODataSet1->Eof)
{
//显示ADODataSet1->FieldByName("id")->AsString
//字段id的值为1,可是这里取出来的值却为空? 为什么呢?

ADODataSet1->Next();
}
...全文
219 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
hqxiaoying 2005-02-01
  • 打赏
  • 举报
回复
在ado中的sql属性中,添加语句,要把提取的列名写出来,如select id from test
然后双击ado组件,出现一个空白的浮动小窗口,在窗口右击添加field,把id添加进去
双击dbgrid,也是出现一个空白的浮动小窗口,单击添加列,添加完成后窗口中会出现“0-column1”,你单击这项,在它的属性中找到fieldname,选择id就可以了
你必须把ado,datasource,dbgrid三个控件关联后,才可以实现
wangwei8117 2005-01-31
  • 打赏
  • 举报
回复
你在取数据之前加ADODataSet1->First()试试
sinlo 2005-01-31
  • 打赏
  • 举报
回复
charactor和varchar这两个为AsString
littlestcc 2005-01-24
  • 打赏
  • 举报
回复
我试了一下,发现charactor和varchar类型的字段显示为空,问题应该是由于codepage不一样导致的,db2建库的时候是用的iso 8859-1,BCB应用程序用的是GBK,可能取出来之后变成了乱码,所以就显示成空的了。有没有什么办法可以在取字段值之前先把8859-1编码的转成GBK的??(前提条件,我的DB2数据库不能重建库,只能用8859-1)
ylhyh 2005-01-24
  • 打赏
  • 举报
回复
ADODataSet1->FieldValues["id"]
littlestcc 2005-01-24
  • 打赏
  • 举报
回复
但是不能所有的字段都是integer的呀,那些charactor和varchar类型的字段怎么办
sinlo 2005-01-24
  • 打赏
  • 举报
回复
ADODataSet1->FieldByName("id")->AsInteger
这样写就对了.ID要用AsInteger,而不能用AsString
特招 2005-01-24
  • 打赏
  • 举报
回复
ADODataSet1->First();//加上这条语句呢

while(!ADODataSet1->Eof)
{
//显示ADODataSet1->FieldByName("id")->AsString
//字段id的值为1,可是这里取出来的值却为空? 为什么呢?

ADODataSet1->Next();
}
veryhappyboy 2005-01-20
  • 打赏
  • 举报
回复
先把while循环去掉看看。
yasaka 2005-01-20
  • 打赏
  • 举报
回复
你能不能再说详细一些?你是怎么取的?
558047 2005-01-20
  • 打赏
  • 举报
回复
不知道
littlestcc 2005-01-20
  • 打赏
  • 举报
回复
补充,ADODataSet1的sql语句是"select * from test",最简单的查询
kwokwinglau 2005-01-20
  • 打赏
  • 举报
回复
while(!ADODataSet1->Eof)
{
//显示ADODataSet1->FieldByName("id")->AsString
//字段id的值为1,可是这里取出来的值却为空? 为什么呢?

ADODataSet1->Next();
}

楼主请把上面的代码贴出来.要不咋知道错哪里啊?
littlestcc 2005-01-20
  • 打赏
  • 举报
回复
字段都是varchar的,去掉while循环、改成ADODataSet1->FieldByName("id")->Value后还是一样
再说详细一些,我是用的ado+odbc连的db2,如果把ADODataSet1关联到一个Datasource+DBGrid上之后,DBGrid也会显示出各行记录,但都是空行,字段值都是空的,很奇怪
我用同样的连接方式,连到一个本地的access数据库,DBGrid就可以正常显示出数据
zkbao 2005-01-20
  • 打赏
  • 举报
回复
改成ADODataSet1->FieldByName("id")->Value 试试,你的id是什么类型的数据

1,178

社区成员

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

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