delphi 如何将文本文档里面的信息获取到dbgrid里面,

delphi 如何将文本文档里面的信息获取到dbgrid里面,,第1张

ADO连接文本文件

adoquery连接字符串

Provider=MicrosoftJetOLEDB40;Data Source=文本文件的目录;Extended Properties=text;Persist Security Info=False

然后在ADOQuery中写SQL为

select from 你的文本文件名

DBGridEh只是一个显示数据的界面, *** 作数据在它的下层:DATASET

如:ADO的ADOQUERY,ADOStoredProc之类的。

即:DBGridEh1DataSourceDataSet

一般是你鼠标点到哪一行,其DataSet的指针就指到了什么位置

你可以直接通过DataSetFields[i]Value来得到结果

如果是选择多行的话,可以使用循环来做,加个判断

DataSetFirst;

while not DataSetEof do

begin

if DBGrid1SelectedRowsCurrentRowSelected then

begin

for i := 0 to DbGrid1ColumnsCount - 1 do

begin

DBGrid1ColumnsItems[i]FieldValue //获得值

end;

end;

DataSet1Next;

end;

var

  LStrList:TStrings;

begin

  LStrList := TStringListCreate;

  LStrListDelimiter := '$';

  LStrListDelimitedText :='断裂拉伸强度$撕裂强度$扯断伸长率$粘接剥离强度$不透水性$低温弯折';

  {LStrList里方的就是

断裂拉伸强度

撕裂强度

扯断伸长率

粘接剥离强

不透水性

低温弯折} 

end;

比较麻烦,目前想到一个笨办法。

{

显示DBGrid中鼠标指向的记录号

by 宋银海

}

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, Grids, DBGrids, DB, DBTables;

type

TForm1 = class(TForm)

Table1: TTable;

DataSource1: TDataSource;

DBGrid1: TDBGrid;

Button1: TButton;

procedure Button1Click(Sender: TObject);

procedure DBGrid1MouseMove(Sender: TObject; Shift: TShiftState; X,

Y: Integer);

procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;

DataCol: Integer; Column: TColumn; State: TGridDrawState);

private

{ Private declarations }

FDBRow:Integer;

FDBCurrentRec:Integer;

public

{ Public declarations }

published

property DBRow: Integer read FDBRow write FDBRow;

property DBCurrentRec: Integer read FDBCurrentRec write FDBCurrentRec;

end;

var

Form1: TForm1;

implementation

{$R dfm}

procedure TForm1Button1Click(Sender: TObject);

begin

if not Table1Active then

Table1Open;

end;

procedure TForm1DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;

DataCol: Integer; Column: TColumn; State: TGridDrawState);

begin

DBRow:=(RectBottom-DBGrid1Top+1) div (RectBottom-RectTop+1);

DBCurrentRec:=DBGrid1DataSourceDataSetRecNo;

end;

procedure TForm1DBGrid1MouseMove(Sender: TObject; Shift: TShiftState; X,

Y: Integer);

var

pt:TGridCoord;

begin

pt:=(Sender as TDBGrid)MouseCoord(x,y); //获取DBGrid中的坐标

Caption:='鼠标指向记录号是 '+IntTostr(DBCurrentRec+ptY-DBRow);

end;

end

你用query或table连接数据库后

以query为例

query1close;

query1sqltext:='select from yourtable';

query1open;

dbgrid的总行数就是

query1recordcount

dbgrid1ColumnsGridFields[7]Value

这个是选中列第八行的值

还有别的方法

比如你在dbgrid的cellclick方法中写

dbgrd1DataSourceDataSetFieldByName('你想取的字段名称')AsString

这个可以取出你想点中的某行的某个字段内容

DBGrid1DataSourceDataSetPrevious;

应该可以直接找到上一条记录吧

不要直接 *** 作数据敏感部件,你可以使用ClientDataSet,把 *** 作跟数据库隔离出来

只有按特定的按钮才更新数据库,不然,一量出错,而你不小心退出,就有你哭的啊

以上就是关于delphi 如何将文本文档里面的信息获取到dbgrid里面,全部的内容,包括:delphi 如何将文本文档里面的信息获取到dbgrid里面,、delphi 怎么用TDBGridEh给数据库添加数据、怎么 得到 DBGrid选中行的数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9303228.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存