关于数据库查询和插入的几个小问题,急等用啊!!!!!!!!

时间:2020-12-24 17:35:56
我做个毕业设计,很幼稚的那种,有几个 问题不会做,希望哪个高手帮帮忙!!  delphi6.0+access
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


3, 加个按钮,加如下代码:

  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. 说起来太麻烦
建议楼主你找本书看看吧

#4


建议别用DB这组数据感知控件,因为操作时有好多不能符合自己的实际需求,写起来麻烦。

#5


仅是思路:
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)

#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;就提交到数据库了.

#8


1.dbcombobox连接指定的数据集,然后在它的onchange事件里写SQL语句,查询出相应的数据,使在dbgrid中显示。

 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


3, 加个按钮,加如下代码:

  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. 说起来太麻烦
建议楼主你找本书看看吧

#4


建议别用DB这组数据感知控件,因为操作时有好多不能符合自己的实际需求,写起来麻烦。

#5


仅是思路:
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)

#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;就提交到数据库了.

#8


1.dbcombobox连接指定的数据集,然后在它的onchange事件里写SQL语句,查询出相应的数据,使在dbgrid中显示。

 if Dbgrid1.DataSource.DataSet.State in [dsEdit, dsInsert] then
  begin
    Dbgrid1.DataSource.DataSet.Post;
  end;