
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选中行的数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)