1; 先在dbcombobox1中选出1个值(比如课程名称:数据结构),这个值也是从数据库中选出来的,然后在根据这个值查询使dbgrid显示合适的数据(比如学号,课程名,年级,课程号)
2;dbtext的用法:用dbgrid显示合适的数据(已经做完了),想用dbtext显示满足某条件的记录个数(不会),
3:dbedit好象想编辑的话的把dbdatase或dbtable设成edit状态,但怎么做啊?
我直接用,执行后不能写数据到dbedit控件,adotable1.edit;执行有提示出错,
希望能写出具体的代码,我学的时间不长,拜托各位了!!!!!!!!!!!
8 个解决方案
#1
1, 很简单,但表达比较麻烦,建议找本书看看
2 >>想用dbtext显示满足某条件的记录个数(不会),
改用 Edit 或 Label
如: Edit1.Text := IntToStrDef(DBGrid1.DataSource.DataSet.RecordCount, 0);
2 >>想用dbtext显示满足某条件的记录个数(不会),
改用 Edit 或 Label
如: Edit1.Text := IntToStrDef(DBGrid1.DataSource.DataSet.RecordCount, 0);
#2
3, 加个按钮,加如下代码:
if Dbgrid1.DataSource.DataSet.State in [dsEdit, dsInsert] then
begin
Dbgrid1.DataSource.DataSet.Post;
end;
if Dbgrid1.DataSource.DataSet.State in [dsEdit, dsInsert] then
begin
Dbgrid1.DataSource.DataSet.Post;
end;
#3
1. 可以在dbcombobox的onChange事件里控制
2. dbtext是数据感知的,如果你一定要用它的话必须和一个adoquery关联,那你要显示记录数的话就在adoquery里写个类似select count ...的sql语句然后open就行了,你可以考虑换成label控件来显示adoquery.recordcount更简单
3. 说起来太麻烦
建议楼主你找本书看看吧
2. dbtext是数据感知的,如果你一定要用它的话必须和一个adoquery关联,那你要显示记录数的话就在adoquery里写个类似select count ...的sql语句然后open就行了,你可以考虑换成label控件来显示adoquery.recordcount更简单
3. 说起来太麻烦
建议楼主你找本书看看吧
#4
建议别用DB这组数据感知控件,因为操作时有好多不能符合自己的实际需求,写起来麻烦。
#5
仅是思路:
1.先用dbcombobox连接指定的数据集,相信这个你会设置,然后在它的onchange事件里写SQL语句,查询出相应的数据,使在dbgrid中显示。
2.显示记录个数其实不必用dbtext,用label就可以。
label.caption := inttostr(dbgrid.datasource.dataset.recordcount); //OK
3.dbedit.datasource.dataset.edit; //设置编辑状态
1.先用dbcombobox连接指定的数据集,相信这个你会设置,然后在它的onchange事件里写SQL语句,查询出相应的数据,使在dbgrid中显示。
2.显示记录个数其实不必用dbtext,用label就可以。
label.caption := inttostr(dbgrid.datasource.dataset.recordcount); //OK
3.dbedit.datasource.dataset.edit; //设置编辑状态
#6
1.建议用adoquery+DataSource+Dbgrid组件查询
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
adoquery.sql.clear;
adoquery.sql.add('select * from 表 where 字段名='''+trim(combobox1.text)+'''');
adoquery.open;
end;
2.用edit组件,让edit.text = inttostr(aduqyery.recordcount)
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
adoquery.sql.clear;
adoquery.sql.add('select * from 表 where 字段名='''+trim(combobox1.text)+'''');
adoquery.open;
end;
2.用edit组件,让edit.text = inttostr(aduqyery.recordcount)
#7
接楼上的
3.你应该用一个ADOConnection连接数据库
ADOTable或者ADOQuery连接ADOConnection.
然后用一个DataSource连接ADOTable或者ADOQuery
之后把DBEdit的DataSource设置为ADOTable或者ADOQuery.
把dbdatase或dbtable设成edit状态
就是 ADOTable.Edit;/ADOTable.Insert.或者ADOQuery.Edit;/ADOQuery.Insert
改完之后一个ADOQuery.Post;/ADOTable.Post;就提交到数据库了.
3.你应该用一个ADOConnection连接数据库
ADOTable或者ADOQuery连接ADOConnection.
然后用一个DataSource连接ADOTable或者ADOQuery
之后把DBEdit的DataSource设置为ADOTable或者ADOQuery.
把dbdatase或dbtable设成edit状态
就是 ADOTable.Edit;/ADOTable.Insert.或者ADOQuery.Edit;/ADOQuery.Insert
改完之后一个ADOQuery.Post;/ADOTable.Post;就提交到数据库了.
#8
1.dbcombobox连接指定的数据集,然后在它的onchange事件里写SQL语句,查询出相应的数据,使在dbgrid中显示。
if Dbgrid1.DataSource.DataSet.State in [dsEdit, dsInsert] then
begin
Dbgrid1.DataSource.DataSet.Post;
end;
if Dbgrid1.DataSource.DataSet.State in [dsEdit, dsInsert] then
begin
Dbgrid1.DataSource.DataSet.Post;
end;
#1
1, 很简单,但表达比较麻烦,建议找本书看看
2 >>想用dbtext显示满足某条件的记录个数(不会),
改用 Edit 或 Label
如: Edit1.Text := IntToStrDef(DBGrid1.DataSource.DataSet.RecordCount, 0);
2 >>想用dbtext显示满足某条件的记录个数(不会),
改用 Edit 或 Label
如: Edit1.Text := IntToStrDef(DBGrid1.DataSource.DataSet.RecordCount, 0);
#2
3, 加个按钮,加如下代码:
if Dbgrid1.DataSource.DataSet.State in [dsEdit, dsInsert] then
begin
Dbgrid1.DataSource.DataSet.Post;
end;
if Dbgrid1.DataSource.DataSet.State in [dsEdit, dsInsert] then
begin
Dbgrid1.DataSource.DataSet.Post;
end;
#3
1. 可以在dbcombobox的onChange事件里控制
2. dbtext是数据感知的,如果你一定要用它的话必须和一个adoquery关联,那你要显示记录数的话就在adoquery里写个类似select count ...的sql语句然后open就行了,你可以考虑换成label控件来显示adoquery.recordcount更简单
3. 说起来太麻烦
建议楼主你找本书看看吧
2. dbtext是数据感知的,如果你一定要用它的话必须和一个adoquery关联,那你要显示记录数的话就在adoquery里写个类似select count ...的sql语句然后open就行了,你可以考虑换成label控件来显示adoquery.recordcount更简单
3. 说起来太麻烦
建议楼主你找本书看看吧
#4
建议别用DB这组数据感知控件,因为操作时有好多不能符合自己的实际需求,写起来麻烦。
#5
仅是思路:
1.先用dbcombobox连接指定的数据集,相信这个你会设置,然后在它的onchange事件里写SQL语句,查询出相应的数据,使在dbgrid中显示。
2.显示记录个数其实不必用dbtext,用label就可以。
label.caption := inttostr(dbgrid.datasource.dataset.recordcount); //OK
3.dbedit.datasource.dataset.edit; //设置编辑状态
1.先用dbcombobox连接指定的数据集,相信这个你会设置,然后在它的onchange事件里写SQL语句,查询出相应的数据,使在dbgrid中显示。
2.显示记录个数其实不必用dbtext,用label就可以。
label.caption := inttostr(dbgrid.datasource.dataset.recordcount); //OK
3.dbedit.datasource.dataset.edit; //设置编辑状态
#6
1.建议用adoquery+DataSource+Dbgrid组件查询
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
adoquery.sql.clear;
adoquery.sql.add('select * from 表 where 字段名='''+trim(combobox1.text)+'''');
adoquery.open;
end;
2.用edit组件,让edit.text = inttostr(aduqyery.recordcount)
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
adoquery.sql.clear;
adoquery.sql.add('select * from 表 where 字段名='''+trim(combobox1.text)+'''');
adoquery.open;
end;
2.用edit组件,让edit.text = inttostr(aduqyery.recordcount)
#7
接楼上的
3.你应该用一个ADOConnection连接数据库
ADOTable或者ADOQuery连接ADOConnection.
然后用一个DataSource连接ADOTable或者ADOQuery
之后把DBEdit的DataSource设置为ADOTable或者ADOQuery.
把dbdatase或dbtable设成edit状态
就是 ADOTable.Edit;/ADOTable.Insert.或者ADOQuery.Edit;/ADOQuery.Insert
改完之后一个ADOQuery.Post;/ADOTable.Post;就提交到数据库了.
3.你应该用一个ADOConnection连接数据库
ADOTable或者ADOQuery连接ADOConnection.
然后用一个DataSource连接ADOTable或者ADOQuery
之后把DBEdit的DataSource设置为ADOTable或者ADOQuery.
把dbdatase或dbtable设成edit状态
就是 ADOTable.Edit;/ADOTable.Insert.或者ADOQuery.Edit;/ADOQuery.Insert
改完之后一个ADOQuery.Post;/ADOTable.Post;就提交到数据库了.
#8
1.dbcombobox连接指定的数据集,然后在它的onchange事件里写SQL语句,查询出相应的数据,使在dbgrid中显示。
if Dbgrid1.DataSource.DataSet.State in [dsEdit, dsInsert] then
begin
Dbgrid1.DataSource.DataSet.Post;
end;
if Dbgrid1.DataSource.DataSet.State in [dsEdit, dsInsert] then
begin
Dbgrid1.DataSource.DataSet.Post;
end;