delphi初学者请教一个问题(如何向stringgrid中填入数据,并与数据库相连)

时间:2023-01-09 21:40:17
一、如何向stringgrid中填入数据,
二、并与数据库相连
三、如何在FixedRows中填入内容。

12 个解决方案

#1


建议使用Tdbgrid

#2


转载
----------------------------

怎样对 TStringGrid 进行 Delete,Insert,Sort 操作.


回答:
Procedure GridRemoveColumn(StrGrid: TStringGrid; DelColumn: 
Integer); 
Var Column: Integer; 
begin 
If DelColumn <= StrGrid.ColCount then 
Begin 
For Column := DelColumn To StrGrid.ColCount-1 do 
StrGrid.Cols[Column-1].Assign(StrGrid.Cols[Column]); 
StrGrid.ColCount := StrGrid.ColCount-1; 
End; 
end; 


Procedure GridAddColumn(StrGrid: TStringGrid; NewColumn: Integer); 

Var Column: Integer; 
begin 
StrGrid.ColCount := StrGrid.ColCount+1; 
For Column := StrGrid.ColCount-1 downto NewColumn do 
StrGrid.Cols[Column].Assign(StrGrid.Cols[Column-1]); 
StrGrid.Cols[NewColumn-1].Text := ''; 
end; 



Procedure GridSort(StrGrid: TStringGrid; NoColumn: Integer); 
Var Line, PosActual: Integer; 
Row: TStrings; 
begin 
Renglon := TStringList.Create; 
For Line := 1 to StrGrid.RowCount-1 do 
Begin 
PosActual := Line; 
Row.Assign(TStringlist(StrGrid.Rows[PosActual])); 
While True do 
Begin 
If (PosActual = 0) Or (StrToInt(Row.Strings[NoColumn-1]) >= 
StrToInt(StrGrid.Cells[NoColumn-1,PosActual-1])) then 
Break; 
StrGrid.Rows[PosActual] := StrGrid.Rows[PosActual-1]; 
Dec(PosActual); 
End; 
If StrToInt(Row.Strings[NoColumn-1]) < 
StrToInt(StrGrid.Cells[NoColumn-1,PosActual]) then 
StrGrid.Rows[PosActual] := Row; 
End; 
Renglon.Free; 
end; 

#3


DBGrid更方便 ,为何不用DBGrid?

#4


首先要建立数据连接,然后从数据源中获取数据,最后根据数据和stringgrid的对应关系写
stringgrid1.cell[i,j]:=数据,就OK!

#5


一.用StringGird1.Cells[列,行] := '数据项'给StringGrid填入数据;
二.只能从数据库查出数据后填入表格内
三.用StringGrid1.Cells[列, 0] := '标题项'来赋予标题

#6


我也建議你使用DBGrid

#7


谢谢大家的关心。
现在我想用dbgrid了。
问题与stringgrid一样。

谢谢。

#8


呆子:你的数据中有合计项吗?有,不用stringgrid那就真是呆子了!
没有?用stringgrid?哇,你真的不嫌麻烦吗?

#9


re up

#10


现在的主要问题是,如何与数据库建立连接?
我用databasedesktop建立一个数据库表。
然后在datasource中不知道如何设置数据库类型。
总出现莫名其妙的错误。

#11


用desktop建立的是parodox类型

#12


用BDE连到数据库,TABLE连到DATASOURCE上。用DATASOURCE连接BDE别名,再把DBGRID连到DATASOURCE上。

#1


建议使用Tdbgrid

#2


转载
----------------------------

怎样对 TStringGrid 进行 Delete,Insert,Sort 操作.


回答:
Procedure GridRemoveColumn(StrGrid: TStringGrid; DelColumn: 
Integer); 
Var Column: Integer; 
begin 
If DelColumn <= StrGrid.ColCount then 
Begin 
For Column := DelColumn To StrGrid.ColCount-1 do 
StrGrid.Cols[Column-1].Assign(StrGrid.Cols[Column]); 
StrGrid.ColCount := StrGrid.ColCount-1; 
End; 
end; 


Procedure GridAddColumn(StrGrid: TStringGrid; NewColumn: Integer); 

Var Column: Integer; 
begin 
StrGrid.ColCount := StrGrid.ColCount+1; 
For Column := StrGrid.ColCount-1 downto NewColumn do 
StrGrid.Cols[Column].Assign(StrGrid.Cols[Column-1]); 
StrGrid.Cols[NewColumn-1].Text := ''; 
end; 



Procedure GridSort(StrGrid: TStringGrid; NoColumn: Integer); 
Var Line, PosActual: Integer; 
Row: TStrings; 
begin 
Renglon := TStringList.Create; 
For Line := 1 to StrGrid.RowCount-1 do 
Begin 
PosActual := Line; 
Row.Assign(TStringlist(StrGrid.Rows[PosActual])); 
While True do 
Begin 
If (PosActual = 0) Or (StrToInt(Row.Strings[NoColumn-1]) >= 
StrToInt(StrGrid.Cells[NoColumn-1,PosActual-1])) then 
Break; 
StrGrid.Rows[PosActual] := StrGrid.Rows[PosActual-1]; 
Dec(PosActual); 
End; 
If StrToInt(Row.Strings[NoColumn-1]) < 
StrToInt(StrGrid.Cells[NoColumn-1,PosActual]) then 
StrGrid.Rows[PosActual] := Row; 
End; 
Renglon.Free; 
end; 

#3


DBGrid更方便 ,为何不用DBGrid?

#4


首先要建立数据连接,然后从数据源中获取数据,最后根据数据和stringgrid的对应关系写
stringgrid1.cell[i,j]:=数据,就OK!

#5


一.用StringGird1.Cells[列,行] := '数据项'给StringGrid填入数据;
二.只能从数据库查出数据后填入表格内
三.用StringGrid1.Cells[列, 0] := '标题项'来赋予标题

#6


我也建議你使用DBGrid

#7


谢谢大家的关心。
现在我想用dbgrid了。
问题与stringgrid一样。

谢谢。

#8


呆子:你的数据中有合计项吗?有,不用stringgrid那就真是呆子了!
没有?用stringgrid?哇,你真的不嫌麻烦吗?

#9


re up

#10


现在的主要问题是,如何与数据库建立连接?
我用databasedesktop建立一个数据库表。
然后在datasource中不知道如何设置数据库类型。
总出现莫名其妙的错误。

#11


用desktop建立的是parodox类型

#12


用BDE连到数据库,TABLE连到DATASOURCE上。用DATASOURCE连接BDE别名,再把DBGRID连到DATASOURCE上。