VB6.0中,如何删除特定记录,SQL中删除记录很方便,VB中如何实现呢?
在SQL 中,删除特定记录的语句为delete from 某一表格名称 where 某一字段名="****"
这样删除特定记录很方便,但是在VB中如何能够实现呢。请求高手指点! --------------------编程问答-------------------- 比如在学生记录表格中,我要删除姓名为 “张三”的记录
则在SQL 中,可以写这样的语句,在SQL查询分析器中直接调用可以删除
delete from 学生记录 where 姓名="张三"
这样删除特定记录很方便,然而目前我想在VB环境中直接单击某一command命令实现
该如何写代码?? --------------------编程问答-------------------- Dim cn As ADODB.Connection
cn.ConnectionString = "Provider=SQLOLEDB.1;" _
& "Integrated Security=SSPI;" _
& "Persist Security Info=False;" _
& "User ID=sa;" _
& "Initial Catalog=" & 数据库名 _
& ";Data Source=" & localhost
cn.execute("delete from 某一表格名称 where 某一字段名='****' ") --------------------编程问答-------------------- Dim cn As ADODB.Connection
cn.ConnectionString = "Provider=SQLOLEDB.1;" _
& "Integrated Security=SSPI;" _
& "Persist Security Info=False;" _
& "User ID=sa;" _
& "Initial Catalog=" & 数据库名 _
& ";Data Source=" & localhost
cn.execute("delete from 某一表格名称 where 某一字段名='****' ") --------------------编程问答-------------------- 没错用ADO连接,很方便 --------------------编程问答-------------------- 能讲的详细一点吗 --------------------编程问答-------------------- 运行VB,选择“工程\引用”命令,引用“Microsoft AetiveX Date Objects 2.8 Library” (一般选择2.5以上版本)
然后贴上2\3楼的代码就OK
--------------------编程问答-------------------- create database gjlshining
'再注释一下:
dim cn as adodb.connectino '声明ADO的数据库连接对象
dim sql as string
dim n as integer
set cn=new adodb.connection '实例化
'连接数据库
cn.open "Provider = SQLOLEDB.1;" & _
"User ID = sa;Password = 123;" & _
"Data Source = 192.168.1.1;" & _
"Initial Catalog = 要连接的数据库名称"
sql="delete from 某一表格名称 where 某一字段名='****'"
'执行SQL语句
cn.execute sql,n
'返回所影响的行数
msgbox n
set cn=nothing
use gjlshining
create table vb6_delete
(
name varchar(50) primary key,
age integer not null default 0
)
insert into vb6_delete (name, age) values ('张三', 10)
insert into vb6_delete (name, age) values ('李四', 11)
insert into vb6_delete (name, age) values ('楼主', 20)
Private Sub Command3_Click()
Dim dbComm As New ADODB.Command
Dim sLocalhost As String
Dim sSQL As String
Dim sName As String
Err.Clear
On Error GoTo ErrorComm
sLocalhost = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=True;Initial Catalog=gjlshining;Data Source=localhost\SQLEXPRESS" ' 这是本地连接数据库的一个写法,我不太懂,是网上搜到的;gjlshining是数据库名
sName = "'张三'"
sSQL = "delete from vb6_delete where name = " & sName
dbComm.ActiveConnection = sLocalhost
dbComm.CommandText = sSQL
dbComm.Execute
Set dbComm = Nothing' 我猜dbComm需要释放内存,但是不知道这样用对不对,因为Connection对象都有close,command对象没有
Exit Sub
ErrorComm:
If (Err.Number <> 0) Then
MsgBox Err.Description, vbCritical + vbOKOnly, "错误提示"
Set dbComm = Nothing
Exit Sub
End If
End Sub
我用的是sql server 2005 express因此 Data Source=localhost\SQLEXPRESS
--------------------编程问答-------------------- 和SQL里面的差不多,还是用SQL语句
如:delete from 学生记录 where 姓名="张三" --------------------编程问答-------------------- 友情up --------------------编程问答-------------------- 友情up --------------------编程问答-------------------- 友情up --------------------编程问答-------------------- 我用的是ADODC连接数据库,能不能在ADODC下实现这样的功能呢,求代码! --------------------编程问答-------------------- 还是慢慢的改用ADO吧 这个 --------------------编程问答-------------------- 对!改用ado吧,很方便的,上面已经说了用ADO创建实例的方法。你只需要在工程中引用ADO就行了。
方法:菜单”工程“→”引用“→Microsoft ActiveX Data object 2.8 library
较老的版本好像是2.5的,记不清了——尽量用新版本吧。 --------------------编程问答-------------------- 另外,使用ADODC连接库如果要删除记录得断开连接,否则会发生非独占错误(我几年前这样做过,那时是单机版),并且非常繁琐。 --------------------编程问答-------------------- 那更新和增加记录用断开连接吗 --------------------编程问答--------------------
ADODC1.Recordset.ActiveConnection.Execute "delete from 学生记录 where 姓名="张三" --------------------编程问答-------------------- 不好意思,近日比较忙,没有上网。修改后更新或增加是不必断开连接的,逻辑删除也不用,只有物理删除时才需要。 --------------------编程问答-------------------- 那用oledb的句子怎么写呢?好像控件实用dataset吧?
补充:VB , 控件