首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

对数据库进行操作后,怎么让DBGRID自动刷新

2012-02-06 
对数据库进行操作后,如何让DBGRID自动刷新?我现在往数据库里面插入一条纪录,但是在DBGRID里面却看不到新增

对数据库进行操作后,如何让DBGRID自动刷新?
我现在往数据库里面插入一条纪录,但是在DBGRID里面却看不到新增加的数据,请问如何刷新才能看到?

DBGRID1的DATASOURCE属性是DATASOURCE1
DATASOURCE1的DATASET属性是adoquery1

有一个增加记录的按钮,代码如下:

strsql:='insert into table(name,phone) values(''张三'',''12345678'')';

adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add(strsql);
adoquery1.ExecSQL;
datasource1.DataSet.Close;
datasource1.DataSet.Open;

结果提示:'当前提供程序不支持从单一执行返回多个记录集'.

应该如何解决呢?

[解决办法]
DBGRID1是用来显示查询的数据,你为什么要连接adoquery1插入数据集呢?这明显是个错误,DBGRID1要连接一个adoquery2的查询数据集.在adoquery2的SQL里你再写查询语句"select * from table1"
[解决办法]
刷新前保存关键字段值 刷新后ado.Locate('关键字段名',保存起来的值,[]);
[解决办法]
vName := adoquery1.fieldbyName('name').asString;
datasource1.DataSet.Close; 
//插入数据
strsql:= 'insert into table(name,phone) values( ' '张三 ' ', ' '12345678 ' ') '; 
adoquery1.Close; 
adoquery1.SQL.Clear; 
adoquery1.SQL.Add(strsql); 
adoquery1.ExecSQL; 
//刷新数据
strsql:= 'select name,phone from table'; 
adoquery1.Close; 
adoquery1.SQL.Clear; 
adoquery1.SQL.Add(strsql); 
adoquery1.Open; 
//定位原位置
adoquery1.Locate( 'name',vName,[]);
datasource1.DataSet.Open;

热点排行