其次检查数据字段是否与数据库字段属性一致;
最后修改删除模块如下:
Sub del(newsclass)
Dim dataconn
Dim strConn
Dim DataCmd
set dataconn=server.CreateObject("ADODB.Connection")
strConn="Driver={Microsoft Access Driver (*.mdb)}DBQ=" &server.MapPath("db.mdb")
dataconn.Open(strConn)
set DataCmd=server.CreateObject("ADODB.Command")
set DataCmd.ActiveConnection = dataconn
DataCmd.CommandText="Delete From newsclass Where class='"&newsclass &"'"
'若class属性为数字则:
'DataCmd.CommandText="Delete From newsclass Where class="&newsclass
DataCmd.Execute
dataconn.Close
set dataconn=nothing
set DataCmd=nothing
End Sub
在过程(Sub)或者函数(Function)中尽量不要使用外部数据库链接,而是在内部新建立一个数据库链接,用完后再释放
尽量使用参数传递
尽量直接使用SQL语句 *** 作数据库,而不是使用游标间接控制
在Sub过程中尽量不要使用跳转Redirect
用处理细节的改变是不会有直接效果的。因为DBGrid已经同数据源关联了,更新数据集是系统强制的,你不让它更新不是逆天吗?根据经验,想不更新数据。只能用在DBGrid显示区域暂时覆盖一个象ListView或StringGrid似的表格控件,将数据源或DBGrid的数据转进去(你是程序员,应该知道怎么转的)显示和编辑,用完了,再设置其可见属性Visiable为False关闭它。过去我在商业应用中也遇到过这类的问题,就是这样成功处理的。一条Update更新语句是不能更新多张表的,除非使用触发器隐含更新。而表的更新 *** 作中,在很多情况下需要在表达式中引用要更新的表以外的数据。我们先来讨论根据其他表数据更新你要更新的表一、MSSQLServer 多表关联更新
sql server提供了update的from 子句,可以将要更新的表与其它的数据源连接起来。虽然只能对一个表进行更新,但是通过将要更新的表与其它的数据源连接起来,就可以在update的表达式 中引用要更新的表以外的其它数据。
一般形式:
update A SET 字段1=B表字段表达式, 字段2=B表字段表达式 from B WHERE逻辑表达式
例如:
UPDATE dbo.Table2
SET dbo.Table2.ColB = dbo.Table2.ColB + dbo.Table1.ColB
FROM dbo.Table2
INNER JOIN dbo.Table1
ON (dbo.Table2.ColA = dbo.Table1.ColA)
实际更新的 *** 作是在要更新的表上进行的,而不是在from子句所形成的新的结果集上进行的
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)