读书人

TDBGrid组件修改数据表有关问题

发布时间: 2012-03-09 16:54:57 作者: rapoo

TDBGrid组件,修改数据表问题
本人刚接触delphi,按一本书上做的数据表操作例子,《delphi程序设计》

该程序主要实现下面的功能:
. 用户通过浏览数据库表格,并可以对数据进行编辑修改。
. 当用户双击单元格时,显示其当前字段,并产生一个组合框。
. 用户在组合框中选取字段值,或自己输入字段值,单击后,自动添加到当前记录的对应字段中。、

数据表有Name Capital Continent三列,程序运行后,当我双击修改一个人的Capital,修改过后,不立即更新,而且无论修改哪个人的Capital后,我一拉右边的滚动条,它改变的都是最上面一个人的Captial。不知道描述清没,主要如下,坐等吧。
unit Unit1;
interface
uses
Windows,Messages,SysUtils,Classes,Graphics,Controls,Forms,Dialogs,
Db,DBTables,Grid s,DBGrids,StdCtrls ;
type
TForm1 = class(T F o r m)
DataSource1: TDataSource;
DBGrid1: TDBGrid;
Query1: TQuery;
Button1: TButton;
ComboBox1: TComboBox;
Label1: TLabel;
procedure Button1Click(Sender: TO b j e c t);
procedure DBGrid1DblClick(Sender: TO b j e c t);
procedure ComboBox1Click(Sender: TO b j e c t);
private
{ Private declarations }
public
{ Public declarations }
end ;

var
Form1: TForm1;
implementation
{$R *. D F M }


procedure TForm1.Button1Click(Sender: TObject);
begin
application.Terminate ;
end ;


procedure TForm1.DBGrid1DblClick(Sender: TObject);
begin
with DBGrid1.SelectedField do
label1.visible: = true;
label1.Caption := '请输入'+ DisplayName +'值:' ;

with combobox1 do
begin
Visible :=true;
items.Clear ;
case DBGrid1.SelectedField.Index of
0 :
begin
items.add('China ');
items.add('Japan');
items.add('France');
end ;
1:
begin
items.add('Beijing ');
items.add('Tokyo');
items.add('Paris ');
end ;
2 :
begin
items.add('Asia');
items.add('Beijing');
items.add('Tokyo');
items.add('Paris');
end;
2:
begin
items.add('Asia');
items.add('Africa');
items.add('Europe');
end;
3:
begin
items.add('100000');
items.add('10000');
items.add('1000');
end;
4:
begin
items.add('12000000');
items.add('5000000');
items.add('100000');
end;
end;
end;
end;

procedure TForm1.ComboBox1Click(Sender:TObject);//本人觉得问题应该在这里面
var
i:integer;
begin
with combobox1 do
begin
query1.Edit;
query1.FieldByName—BGrid1.SelectedField.displayname).asstring:=
Items.Strings[itemindex];
query1.Post;
visible:=false;
label1.Visible:=false;
end;
end;
end.




[解决办法]
发了,有疑问再联系。楼主结贴吧。

探讨
引用:

没有定位到行。

程序怎么知道要改哪行数据?代码中写的修改总是第一行。
我手头有个另外的DBGrid程序,留个邮箱我发给你吧。
有的教材举的例子真不怎么地,实际用的很少。


binbin_05@163.com
感激不尽。

[解决办法]
没有定位到行。
你的光标指向哪行就是在修改哪行的数据

读书人网 >.NET

热点推荐