读书人

如何把文本文件的内容导入到dbgrid中

发布时间: 2012-10-19 16:53:35 作者: rapoo

怎么把文本文件的内容导入到dbgrid中
大家知道dbgrid显示数据
adoconnetion 设置要连接的数据库
adoquery 写sql语句 选择记录行
datasource 把adoquery数据做连接
dbgrid 显示datasource的数据

把dbgrid中显示的数据写到文本文件中
可以利用循环//因为知道表格有几列 几行了 就可以利用循环了

while not mydbgrid.DataSource.DataSet.Eof do
begin
str:='';
for iCount := 0 to mydbgrid.Columns.Count - 1 do
str:=str+mydbgrid.Columns.Items[iCount].Field.AsString+' ';
Writeln(txtfile,str);
mydbgrid.DataSource.DataSet.Next;
end;

现在反过来 把文本文件中的内容写到dbgrid中 怎么整???

我的目的是这样的:导入文本文件内容到dbgrid中,某些列可以修改
改好之后然后点一个按钮
把dbgrid内容写到相应的数据表中

[解决办法]
根据文件内容对dataset进行添加、修改就可以了
[解决办法]
如果你的文本文件格式清楚的话
根据文件中的字段,
先建立dataset的字段,然后根据循环记录对每一个字段赋值,
[解决办法]
adoquery不就是dataset吗
当然要先给adoquery建立字段呀
然后再给字段赋值
循环对每一条记录做

至于提交数据,可以写sql语句
[解决办法]
仔细试了试,发现adoquery无法在没有connection的情况下创建dataset,也无法去添加字段,给字段赋值
楼主,不好意思,一直用bde的query或是clientdataset了,

如果真要实现这样的功能,可以用bde的query,或者是用stringgrid,自己手动赋值,提交数据库估计都要写sql了
[解决办法]
在将dbgrid的数据导入到文本中时,你要在每个字段中间加一个tab值,一般都是这样.
例如格式如下
abcde
然后,你用文本的读写函数从文本中读取数据,直到到行尾.
读出一行,你就按tab作为分隔符,从每行中依次读出a,b,c,d,e再将其对应的值保存在dbgrid的中.
读到dbgrid的中,其实就是利用它联接的dataset(adoquery,adodataset,adotable)等的数据控件实现.
比如:adoquery1.append;
adoquery1.fieldbyname('a').value := a;
...
...
最后都修改完后,你再用一个按钮做为提交操作.
这时最好有事务的方式进行,保证数据的一致性.

但如果这样的需求要我来做,我会,采用导入按钮(可选择文本文件)将数据load后直接存到数据库中,然后用dbgrid来显示出来.
有不对的,用修改方式去修改,然后保存.

读书人网 >.NET

热点推荐