永发信息网

delphi中的dbgrid数据操作

答案:3  悬赏:10  手机版
解决时间 2021-03-25 22:37
delphi中的dbgrid数据操作
最佳答案
其实不用那么复杂.
1.放一个 Adoconnection1到 表单上,设置好数据连接字符串 并 设置 connected 属性 为 true
2 设置 adoquery1的connection 属性为 adoconnection1
3 设置 adoquery1的 sql 属性为 select * from 表名
4 设置 adoquery1的 active =true
5 设置 datasource1的dataset 属性为 adoquery1
6.再放一个 DBNavigator1 设置 datasource=datasource1
7.设置 dbgrid1的 datasource=datasource1
保存 运行 即可.注 dbnavigator 控件 中有自带代码 ...可实现 添加,删除,修改..等
要用代码 如下:
一、ADOTable对数据表的操作:

增加、修改与删除:(以线路管理为例)
1、增加:
procedure TForm7.Button1Click(Sender: TObject);
begin
ADOTable1.TableName:='线路管理';
ADOTable1.Close;
ADOTable1.Open;
adotable1.Edit;
adotable1.Insert;
adotable1.Fields[1].AsString:=edit1.Text;
adotable1.Fields[2].AsString:=edit2.Text;
adotable1.Fields[3].AsString:=edit3.Text;
adotable1.Post;
end;

2、修改:
procedure TForm7.Button2Click(Sender: TObject);
begin
adotable1.Edit;
adotable1.FieldByName('线路编号').AsString:=trim(edit1.Text);
adotable1.FieldByName('线路名称').AsString:=trim(edit2.Text);
adotable1.FieldByName('备注').AsString:=trim(edit3.Text);
end;

3、删除:
procedure TForm7.Button3Click(Sender: TObject);
begin
if Application.MessageBox('确实要删除当前数据吗?','提示',mb_YesNo)=ID_Yes then
begin
try
ADOTable1.Delete;
Application.MessageBox('删除成功','提示',64);
except
Application.MessageBox('系统出错','提示',64);
end;
end;
end;

二、adoquery对数据库的增加,查询,编辑,删除:
1、增加:
procedure TForm8.Button1Click(Sender: TObject);
begin
ADOQuery1.Close;
ADOQuery1.Open;
ADOQuery1.Edit;
ADOQuery1.Insert;
ADOQuery1.Fields[0].AsString:=edit1.Text;
ADOQuery1.Fields[1].AsString:=edit2.Text;
ADOQuery1.Fields[2].AsString:=edit3.Text;
ADOQuery1.Fields[3].AsString:=edit3.Text;
ADOQuery1.Fields[4].AsString:=edit3.Text;
ADOQuery1.Fields[5].AsString:=edit3.Text;
ADOQuery1.Fields[6].AsString:=edit3.Text;
ADOQuery1.Post;
end;

2、查询:
procedure TForm8.Button2Click(Sender: TObject);
begin
with ADOQuery1 do
begin
close;
sql.clear;
sql.add('select * from 班次管理 where 班次编号='''+edit1.text+'''or 班次名称='''+edit2.text+''' or 开始时间='''+edit3.text+''' or 结束时间='''+edit4.text+''' or 零点之前数据流向='''+edit5.text+''' or 零点之后数据流向='''+edit6.text+''' or 备注='''+edit7.text+''''); //书写SQL语句时的格式很重要
open;
if dbgrid1.DataSource.DataSet.IsEmpty then //判断查询结果是否为空
begin
showmessage('输入错误!');
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.sql.Add('select * from 班次管理');
adoquery1.Open;
end;
end;

end;

3、更改:
procedure TForm8.Button3Click(Sender: TObject);
begin
adoquery1.Edit;
adoquery1.FieldByName('班次名称').AsString:=trim(edit2.Text);
adoquery1.FieldByName('开始时间').AsString:=trim(edit3.Text);
adoquery1.FieldByName('结束时间').AsString:=trim(edit4.Text);
adoquery1.FieldByName('零点之前数据流向').AsString:=trim(edit5.Text);
adoquery1.FieldByName('零点之后数据流向').AsString:=trim(edit6.Text);
adoquery1.FieldByName('备注').AsString:=trim(edit7.Text);
adoquery1.Append;
end;

4、删除:
procedure TForm8.Button4Click(Sender: TObject);
begin
if Application.MessageBox('确实要删除当前数据吗?','提示',mb_YesNo)=ID_Yes then
begin
try
adoquery1.Delete;
Application.MessageBox('删除成功','提示',64);
except
Application.MessageBox('系统出错','提示',64);
end;
adoquery1.SQL.Clear; //刷新DBGRID 中显示的内容
adoquery1.SQL.Add('select * from 班次管理');
adoquery1.Open;
end;
end;

5、显示全部:
procedure TForm8.Button5Click(Sender: TObject);
begin
with ADOQuery1 do
begin
close;
sql.clear;
sql.add('select * from 班次管理');
open;
end;
end;
全部回答
放一个 Adoconnection1到 表单上,设置好数据连接字符串 并 设置 connected 属性 为 true
2 设置 adoquery1的connection 属性为 adoconnection1
3 设置 adoquery1的 sql 属性为 select * from 表名
4 设置 adoquery1的 active =true
5 设置 datasource1的dataset 属性为 adoquery1
6.再放一个 DBNavigator1 设置 datasource=datasource1
7.设置 dbgrid1的 datasource=datasource1
保存 运行 即可.注 dbnavigator 控件 中有自带代码 ...可实现 添加,删除,修改..等
要用代码 如下:
一、ADOTable对数据表的操作:
增加、修改与删除:(以线路管理为例)
1、增加:
procedure TForm7.Button1Click(Sender: TObject);
begin
ADOTable1.TableName:='线路管理';
ADOTable1.Close;
ADOTable1.Open;
adotable1.Edit;
adotable1.Insert;
adotable1.Fields[1].AsString:=edit1.Text;
adotable1.Fields[2].AsString:=edit2.Text;
adotable1.Fields[3].AsString:=edit3.Text;
adotable1.Post;
end;
2、修改:
procedure TForm7.Button2Click(Sender: TObject);
begin
adotable1.Edit;
adotable1.FieldByName('线路编号').AsString:=trim(edit1.Text);
adotable1.FieldByName('线路名称').AsString:=trim(edit2.Text);
adotable1.FieldByName('备注').AsString:=trim(edit3.Text);
end;
3、删除:
procedure TForm7.Button3Click(Sender: TObject);
begin
if Application.MessageBox('确实要删除当前数据吗?','提示',mb_YesNo)=ID_Yes then
begin
try
ADOTable1.Delete;
Application.MessageBox('删除成功','提示',64);
except
Application.MessageBox('系统出错','提示',64);
end;
end;
end;
二、adoquery对数据库的增加,查询,编辑,删除:
1、增加:
procedure TForm8.Button1Click(Sender: TObject);
begin
ADOQuery1.Close;
ADOQuery1.Open;
ADOQuery1.Edit;
ADOQuery1.Insert;
ADOQuery1.Fields[0].AsString:=edit1.Text;
ADOQuery1.Fields[1].AsString:=edit2.Text;
ADOQuery1.Fields[2].AsString:=edit3.Text;
ADOQuery1.Fields[3].AsString:=edit3.Text;
ADOQuery1.Fields[4].AsString:=edit3.Text;
ADOQuery1.Fields[5].AsString:=edit3.Text;
ADOQuery1.Fields[6].AsString:=edit3.Text;
ADOQuery1.Post;
end;
2、查询:
procedure TForm8.Button2Click(Sender: TObject);
begin
with ADOQuery1 do
begin
close;
sql.clear;
sql.add('select * from 班次管理 where 班次编号='''+edit1.text+'''or 班次名称='''+edit2.text+''' or 开始时间='''+edit3.text+''' or 结束时间='''+edit4.text+''' or 零点之前数据流向='''+edit5.text+''' or 零点之后数据流向='''+edit6.text+''' or 备注='''+edit7.text+''''); //书写SQL语句时的格式很重要
open;
if dbgrid1.DataSource.DataSet.IsEmpty then //判断查询结果是否为空
begin
showmessage('输入错误!');
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.sql.Add('select * from 班次管理');
adoquery1.Open;
end;
end;
end;
3、更改:
procedure TForm8.Button3Click(Sender: TObject);
begin
adoquery1.Edit;
adoquery1.FieldByName('班次名称').AsString:=trim(edit2.Text);
adoquery1.FieldByName('开始时间').AsString:=trim(edit3.Text);
adoquery1.FieldByName('结束时间').AsString:=trim(edit4.Text);
adoquery1.FieldByName('零点之前数据流向').AsString:=trim(edit5.Text);
adoquery1.FieldByName('零点之后数据流向').AsString:=trim(edit6.Text);
adoquery1.FieldByName('备注').AsString:=trim(edit7.Text);
adoquery1.Append;
end;
4、删除:
procedure TForm8.Button4Click(Sender: TObject);
begin
if Application.MessageBox('确实要删除当前数据吗?','提示',mb_YesNo)=ID_Yes then
begin
try
adoquery1.Delete;
Application.MessageBox('删除成功','提示',64);
except
Application.MessageBox('系统出错','提示',64);
end;
adoquery1.SQL.Clear; //刷新DBGRID 中显示的内容
adoquery1.SQL.Add('select * from 班次管理');
adoquery1.Open;
end;
end;
5、显示全部:
procedure TForm8.Button5Click(Sender: TObject);
begin
with ADOQuery1 do
begin
close;
sql.clear;
sql.add('select * from 班次管理');
open;
end;
end;
回答者: handsomemank - 江湖新秀 四级 2009-7-29 10:39
添加的按钮我就不说了。代码如下:(对了,下面的dm是数据模块的名称,如果你不用到数据模块的话把它删了就可以了,不清楚可以再问)
procedure TForm2.Button1Click(Sender: TObject); //添加
begin
dm.ADOQuery1.Insert; //添加数据
end;
procedure TForm2.Button2Click(Sender: TObject); //修改
begin
dm.ADOQuery1.Edit; //修改数据
end;
procedure TForm2.Button4Click(Sender: TObject); //取消
begin
if Application.MessageBox('确实要取消吗?','提示',mb_YesNo)=ID_Yes then
begin
try
dm.ADOQuery1.Cancel; // 取消操作
except
Application.MessageBox('系统出错','提示',64);
end;
end;
end;
procedure TForm2.Button5Click(Sender: TObject); // 删除
begin
if Application.MessageBox('确实要删除当前数据吗?','提示',mb_YesNo)=ID_Yes then
begin
try
dm.ADOQuery1.Delete; //删除数据
Application.MessageBox('删除成功','提示',64);
except
Application.MessageBox('系统出错','提示',64);
end;
end;
end;
procedure TForm2.Button3Click(Sender: TObject); //保存
begin
if Application.MessageBox('确实保存数据吗?','提示',mb_YesNo)=ID_Yes then
begin
try
dm.ADOQuery1.Append; //保存提交到数据库
Application.MessageBox('保存成功','提示',64);
except
Application.MessageBox('系统出错','提示',64);
end;
end;
end;
添加的按钮我就不说了。代码如下:(对了,下面的dm是数据模块的名称,如果你不用到数据模块的话把它删了就可以了,不清楚可以再问)
procedure TForm2.Button1Click(Sender: TObject); //添加
begin
dm.ADOQuery1.Insert; //添加数据
end;
procedure TForm2.Button2Click(Sender: TObject); //修改
begin
dm.ADOQuery1.Edit; //修改数据
end;
procedure TForm2.Button4Click(Sender: TObject); //取消
begin
if Application.MessageBox('确实要取消吗?','提示',mb_YesNo)=ID_Yes then
begin
try
dm.ADOQuery1.Cancel; // 取消操作
except
Application.MessageBox('系统出错','提示',64);
end;
end;
end;
procedure TForm2.Button5Click(Sender: TObject); // 删除
begin
if Application.MessageBox('确实要删除当前数据吗?','提示',mb_YesNo)=ID_Yes then
begin
try
dm.ADOQuery1.Delete; //删除数据
Application.MessageBox('删除成功','提示',64);
except
Application.MessageBox('系统出错','提示',64);
end;
end;
end;
procedure TForm2.Button3Click(Sender: TObject); //保存
begin
if Application.MessageBox('确实保存数据吗?','提示',mb_YesNo)=ID_Yes then
begin
try
dm.ADOQuery1.Append; //保存提交到数据库
Application.MessageBox('保存成功','提示',64);
except
Application.MessageBox('系统出错','提示',64);
end;
end;
end;
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
建质是建设部的意思么
从A地向B地打长途电话,通话3分以内收费2.4元
白关碧百度云分享,一个加100分,有多少要多
欧式衣柜品牌介绍
三星s7怎么恢复出厂设置
我国的俄罗斯族与俄罗斯国是否说同样的语言及
立邦刷新服务价格高不高?
跪求欧洲卡车模拟2 v1.9.13修改器
形容歪门邪道,邪风邪气的歇后语
航海类专科生适合考哪类研究生
钥匙扣定制价格大概多少钱
夺宝传世小说txt全集免费下载
四级排列(4 3 2 1)是奇排列还是偶排列
1974年属虎水瓶座人的一生
虎皮鹦鹉小鸟抱出来用人管吧?
推荐资讯
天肖和家肖
YB3电机和YB2电机有什么区别吗
taiki的片子
iPhone 7放歌为什么听筒出声音?
头活水来的上一句是什么和会当凌绝顶的下一句
2005年的二手凯越现在价钱大概多少?
我想问一下我们俩目前已离婚,想复婚,以前房产
谁这张图片的另一半
屋面瓦送检数量是多少?
一道简单的二重积分
为什么想去德国旅行的很少
有人知道快手上的莫大姐吗?听说成立了一个叫
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?