我在用Adodc执行数据库查询操作(对2个表进行组合查询),将结果与一DataGrid绑定,可以正确显示,但当我想删除DataGrid中的一条记录(删除数据库中主表对应的记录)时。用adodc.record.delete不能实现。请问怎么实现?(关键是DataGrid中现示的是2个表中的数据。如何删除其中一条记录?
解决方案 »
- 请教datagrid问题
- text文本框的问题
- 如何让另一个安装程序隐藏在后台自动安装?
- vb中如何把文件拷贝到指定目录?在线等
- 急问串口通信的时候端口号是如何设置的啊??
- 谁知道 ??? 有这样的控件吗 ???
- 谁知道Disconnected recordset是什么意思
- vb里面有没有类似于java中线程的概念?
- 怎样定位access数据库的路径?
- ???请教高手我用winnt+VB6+ACCESS97用ODBC连接开发数据库程序,在别的机子上运行(不论是98或NT)都提示我说“ADO提供者找不到”!
- 如何用Agent调用Microsoft提供的标准鸟?
- 哪位帮我看看这个API的声明是否正确?
你可以判断记录指针来做。
你现在的问题就是不知道当用户点datagrid控件中某一条记录时,你不知道是用哪个ADO控件来进行delete是不是?但愿我没有理解错。
打个比方:Adodc1查询出的记录为15条,Adodc2查询出的记录为12条,那么显示在datagrid控件中的记录数应为27条。那么假设我选中datagird控件第18条记录要进行删除操作,那么你就应该用Adodc2的delete来进行操作。也就是选中>15的记录就用Adodc2的delete方法,<15的就用Adodc1的delete方法。
怎样判断选中的记录是哪一个记录呢?你可以用datagrid控件的row属性与recordset的recordcount属性来搞定。
rs.open "select * from XXX表",cn,3,3
set datagrid1.datasource=rs
datagrid1.refresh如果用控件的话:Adodc1.datasource="select * from XXX表"
set datagrid1.datasource=Adodc1
datagrid1.refresh
table1(a,b,c)
table2(a,m,x,y)
通進a關聯,table2中有多條記錄對應table1中的記錄。要刪除table1中的某條記錄後,與之相關聯的table2中的多條記錄刪掉在table1中寫觸發器如下:create trigger table1_trigger on table1
for delete
as
begin
delete table2 where a in(select a from deleted)
end
GO結果在刪除table1中的某條記錄時,table2中的相關記錄都會刪掉。(deleted是觸發器的虛擬表。)
下面有一個'check synats'檢測語法功能,它會提示是成功還是有錯誤。
不知適合你嗎?提供一點點參考。
1.商品表( 商品ID 类别ID 名称 价格)
2.类别表(类别ID 类别)
用Adodc查询2个表在DataGrid中显示
商品ID 类别 名称 价格可当我在DataGrid上想删除选中一条记录,(要求在数据库中只删除表1中对应的纪录,表2不变) 用Adodc的.delete方法肯定是不行的。如何解决这个问题?
如果你的商品ID不是唯一的话,我权你在最前面设一个自动编号~~~
根本不需要2个表~
代码如下:
………………
Adodc1.DataSource="select * from 商品表,类别表 where 商品表.类别ID=类别表.类别ID"
set DataGrid.DataSource=Adodc1
…………………Private sub cmdDel_click() '删除记录
……
……
Adodc1.recordset.delete
Adodc1.recordset.updateEnd sub
……………
于是在DataGrid中就显示
商品ID 类别 名称 价格这正是我需要的结果。但现在问题是:当选中表格上一条记录,然后点删除(要求只删掉商品表中对应的记录) 。但总是不成功!怎么办???
(这2个表没有建立关联)