VB6.0操作SQL Server——增删改查

摘要:
123456789101112131415161718192021私人SubmdAdd_ click()采用的记录集。AddNewEndSubPrivateSubmdSave_单击()DimIasLongforI=0to6Addc。记录集。领域。值=文本(i+1)。textNextIAdodc1.记录集。UpdateMsgBox“信息添加成功!DimcnasADODB.connectionDimrstasADODB.recordsetPrivatesubForm_Load()setcnn=NewADODB.connectionsetst=NewADODB.recordsetcnn.open”提供程序=SQLOLEDB;PersistsecurityInfo=真;用户ID=sa;InitialCatalog=学生;DataSource=.“rst.open”select*fromstudent_info“,cnnsetMSHFlexGrid.DataSource=rstEndSubPrivatesubmdAdd_click()cnn.execute“insertintostudent_info”&_“Value”EndSub II.通过VB删除数据时,您不仅可以在SQL语句中使用Delete语句,还可以使用ADO控件Delete方法删除数据。PrivateSubForm_Load()Adodc1.ConnectionString=“Provider=SQLOLEDB;PersistSecurityInfo=真;用户ID=sa;InitailCatalog=学生;DataSource=.“Adodc1.Commandtype=adCmdTextAdodc.Recordsource=”select*fromstudent_Info“SetDataGrid1.DataSource=Adodc1EndSubPrivateSubCommand1_Click()Adodc1.Recordset.DeleteIfMsgbox(“是否确实要删除指定的数据?PrivateCommand1_ Click,而且还通过数据绑定控件。
http://www.cnblogs.com/Miss-Lin/archive/2012/08/13/2635848.html一、数据录入

通过VBSQL Server数据库中录入数据,可以使用数据绑定控件录入数据与使用SQL语句录入

1.利用数据绑定控件录入数据

使用数据绑定控件录入数据可以运行较少的代码,实现向数据库中录入数据,数据绑定后,由于数据绑定控件已经与数据表相连接,所以只需通过ADO控件的AddNew方法添加一条新的空白记录,再通过Update方法保存当前的记录,即可完成向数据库中录入数据。

例:向数据库中添加一条记录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
PrivateSubcmdAdd_click()
Adodc1.Recordset.AddNew
EndSub
PrivateSubcmdSave_click()
DimI as Long
for I =0 to 6
Adodc.Recordset.Fields(i).value=Text(i+1).text
NextI
Adodc1.Recoedset.Update
MsgBox"添加信息成功!"
EndSub

2.使用Insert语句录入数据

使用SQL语句录入数据,通过connection对象的execute方法执行SQL语句,语法如下:

connection.execute 字符串,记录数,字符串参数

例:向student数据库中添加一条学生信息

Dimcnn as ADODB.conection
Dimrst as ADODB.recordset
Privatesub Form_Load()
set cnn=NewADODB.connection
set rst=new ADODB.recordset
cnn.open"provider=SQLOLEDB;Persist security Info=True;User ID=sa;Initial Catalog=student;Data Source=."
rst.open"select * from student_info",cnn
set MSHFlexGrid.DataSource=rst
EndSub
Privatesub cmdAdd_click()
cnn.execute"insert into student_info(txtSID,txtName,txtSex;txtBornData,txtRuDate,txtClassNo)"& _
"value('"& txtSID & "','"& txtName & "','"& txtSex & "','"& txtBornDate & "','"& txtRuDate & "','"& txtClassNo & "')"
EndSub
二、数据删除

通过VB删除数据时,不仅可以使用SQL语句中的Delete语句来实现,也可以使用ADO控件Delete方法来删除数据。

1.使用ADO控件Delete方法删除数据

使用ADO控件Delete方法删除数据时,被删除的数据信息表面上是被删除了,实质上数据还存在与内存中,这时还需要使用ADO控件的Update方法才能够将数据彻底地删除

例:删除表中的指定记录:

Adodc1.Recordset.Delete

Adodc1.Recordset.Update

例:通过ADO控件Delete方法删除表中指定的数据:

PrivateSubForm_Load()
Adodc1.ConnectionString="Provider=SQLOLEDB;Persist Security Info=True;User ID=sa;Initail Catalog=student;Data Source=."
Adodc1.Commandtype=adCmdText
Adodc.Recordsource="select * from student_info"
SetDataGrid1.DataSource=Adodc1
EndSub
PrivateSubCommand1_Click()
Adodc1.Recordset.Delete
IfMsgbox("确认删除指定数据吗?",vbYesNo,"提示")=vbYes then
Adodc1.Recordset.Refresh
EndIf
EndSub

2.执行Delete语句进行数据删除

使用Delete语句删除数据,不仅可以删除指定的一条或多条语句,也可以将数据表中的数据全部删除

例:在VB中执行Delete语句删除表student中的全部数据

Cnn.Execute"delete from student"

可以在Delete语句后使用where来限定条件,将条件符合的数据删除

例:删除表student中年龄大于25岁的数据

Cnn.Execute "delete from student where 年龄>'25'"

3.删除列中的数据

无论是通过ADO控件Delete方法还是delete语句删除数据,都是将一行或多行数据全部删除,如果表中一些行的数据需要保留某些列中的信息,那么使用ADO控件Delete方法或Delete语句都是比较麻烦的。

对于删除表中的数据,可以采取数据的方式实现,即将删除列中的数据直接更新为Null

例:通过ADO控件Update方法删除表中列的数据

PrivateSubCommand1_Click()
Adodc1.Recordset.Update 1,Nul
EndSub
三、数据修改

VB中修改数据,不仅仅可以采用执行SQL语句实现,也可以通过数据绑定控件进行数据的修改。数据绑定控件进行数据的修改采用的代码较少,特别是一些表格类数据绑定控件,不需要代码即可对数据进行修改,如DataGrid控件。

1.使用Update语句修改数据

Update语句通过ADO对象的Execute方法执行,达到对数据表中的数据进行修改

Cnn.Execute"Update 数据表名称 set 字段1=表达式1,字段2=表达式2……where子句"

Update语句中可以使用where子句,还有符合条件的数据可执行修改操作,如果使用where指定条件,则Update语句会修改表中的全部数据

通常都是在批量更改时采用该语句,这种方法要比ADOUpdate方法逐条地修改数据方便,但VB中一些表格控件可以不需要代码而直观实现数据的批量修改

2.表格数据绑定控件修改数据

VB中采用表格数据绑定修改控件修改数据,基本上不需要代码,只需要设置表格数据绑定控件的一些属性即可实现,例如DataGrid控件,将其绑定到相应的数据源上,再设置其AllowUpdate属性为True,即可实现表格中修改的数据及时更新到数据库中

该属性可返回或设置一个值,指示用户能否修改DataGrid控件中的数据,语法:

DataGrid.AllowUpdate=布尔表达式

例:使用DataGrid控件修改数据

PrivateSubForm_Load()
'设置连接字符串
Adodc1.ConnectionString="Provider=SQLOLEDB;Persist Security Info=True;User ID=sa;Initial Catalog=student;Data Source=."
'设定数据源
Adodc1.CommandType=adcmdText
Adodc1.RecordSource="select * from student_Info order by student_ID"
'为DataGrid控件绑定数据源
SetDataGrid1.DataSouce=Adodc1
'允许DataGrid1控件更新表中的数据
DataGrid1.AllowUpdate=True
EndSub

3.使用文本数据绑定控件修改数据

DataGrid控件不同,文本类控件绑定数据后在修改数据时,由于所修改的数据只是写入在缓存当中,所以需要通过ADOUpdate方法提交修改,另外,ADO还提供CancelUpdate方法,用此方法来撤销在使用Update方法前对数据所作的修改,在程序中使用CancelUpdate方法的代码如下:Adodc1.Recordset.CancelUpdate

例:使用文本控件绑定数据并进行修改数据

'设置连接字符串与数据源,并绑定数据源
PrivateSubForm_Load()
Adodc1.ConnectiongString="Provider=SQLOLEDB;Persist Security Info=True;User ID=sa;Initial Catalog=student;Data Source=."
Adodc1.RecordSource="select * from Course_Info"
SetText1.DataSource=Adodc1
Text1.DataField="课程名称"
EndSub
'提交保存数据
PrivateSubCommad1_Click()
Adodc1.Recordset.Update
MsgBox"保存成功!",vbOKOnly,"提示"
EndSub
'撤销数据修改
PrivateSubCommand2_Click()
Adodc1.Recordset.CancelUpdate
EndSub
四、数据查询

VB中查询数据库中的数据不仅可以通过执行SQL语句实现,也可以通过控件或对(如ADO)限定检索数据的条件来实现。

1.简单查询

简单查询可以通过Select语句限定数据源来实现。在Select语句中使用关键字、子句等实现。

下面对几种常用的简单查询进行介绍:

1)使用AS改变查询数据的列名

多数情况下,在SQL Server中创建表的字段都是以英文命名的,这些字段名在显示时给一般用户带来不便,那么可以在查询中采用AS来改变字段在显示时的名称。

例:使用AS改变查询数据的列名

PrivateSubcmdModify_Click()
Adodc.RecordSource="select ID as 编号,Mailbox as 电子邮箱 from Mail_Info"
Adodc.Refresh
EndSub

2)计算查询的结果

VB编写的程序中,往往需要将数据库中的数据进行计算,以便获得所需的数值。

通过在查询语句中使用算术运算符,在配合AS为计算出的字段设置名称,即可在查询结果中显示计算得到的数据。

例:计算查询的结果

PrivateSubcmdAcount_Click()
Adodc.RecordSource="select 卡号,每小时上机费用,上机时间(每小时上机费用*上机时间)as 收费金额 from 学生上机收费金额表"
Adodc.Refresh
EndSub

3)比较条件查询

在查询语句中可以包含比较运算,常用的比较运算符有=<><>!>!<>=<=!=。使用这些运算符连接表达式形成一个比较条件,系统将根绝该查询条件返回的布尔值来判断数据是否满足该查询条件,只有满足条件的数据才会出现在查询的结果集中。

这些比较条件在查询语句中需要与where子句连用,但是VB提供Filter属性为Recordset中的数据指定筛选条件。该属性根据条件可选择性地屏蔽Recordset对象中的记录,该属性语法如下:Recordset.Filter=字符串

例:通过Filter属性实现比较条件查询

'设置连接、数据源与初始化程序
PrivateSubForm_Load()
Adodc.connectionString="provider=SQLOLEDB;Data Source=.;Initail CataLog=student;UID=sa;PWD=123456"
Adodc.Recordset="select stuID as 学号,stuname as 姓名,stuage as 年龄 from student_info"
set DataGrid.DataSource=Adodc
Combo1.AddItem"学号"
Combo1.AddItem"姓名"
Combo1.AddItem"年龄"
Combo2.AddItem">"
Combo2.AddItem"<"
Combo2.AddItem">="
Combo2.AddItem"<="
Combo2.AddItem"="
EndSub
'查询信息以及错误处
PrivateSubcmdQuery_Click()
OnErrorResumeNext
IfCombo1.text<>""and Combo2.text<>""then
Adodc.Recordset.Filter=Adodc.Recordset.Fields(Combo1.ListIndex).Name & Combo2.Text & ""& Trim(txtQuery.text) & ""
EndIf
IfErr then Msgbox"请输入正确信息!",vbOKOnly,"警告"
EndSub

2.模糊查询

模糊查询是通过在VB中查询与所给查询内容相似的信息。

实现模糊查询可以通过执行SQL语句中的Like语句实现。Like语句用来确定给定的数据信息是否与指定的模式匹配。(模式可以包含常规字符和通配符字符。)Like也可以在ADOFilter属性中使用。

下面介绍在Filter属性中使用Like与通配符的几种方法:

VB6.0操作SQL Server——增删改查第1张

3.日期和时间查询

对日期和时间的数据查询,可以通过VB中的ADOFilter属性限定筛选条件,或执行查询SQL语句实现。

1)查询指定日期时间的数据

SQL语句中,可以使用运算符(>=<Like等)查询日期/时间类型的数据。日期时间字符串的书写要符合一定的格式,例如“2012-08-13 0:00:01”。

例:查询指定日期时间的数据

PrivateSubcmdQuery_Click()
OnErrorResumeNext
Adodc.Recordset.Filter="出生日期="' & Trim(txtYear.Text) & "-" & Trim(txtMonth.Text) & "-" & Trim(txtDay.Text) & "0:00:00"'
IfErr then Msgbox"请输入正确信息!",vbOKOnly,"错误"
Endsub
PrivateSubForm_Load()
Adodc.ConnectonString="Provider=SQLOLEDB;Data Source=.;Initail Catalog=student;UID=sa;PWD=123456"
Adodc.RecordSource="select stuID as 学号,stuName as 姓名,stuAge as 年龄,stuBornDate as 出生日期 from Student_Info"
set DataGrid.DataSource=Adodc
EndSub

2)分别按年、月、日等查询数据

在设计数据库系统应用程序时,往往需要查询某一年、某个月或某一天的数据。如果采用指定日期时间的方式来查询,虽然可以实现,但是过程是很麻烦的。这时可以采用YearMonthDay等函数,对数据库中日期时间数据提取年、月、日等相关信息;然后结合指定日期时间的查询方式,即可方便地查询到某一年、某个月或者某一天的数据。

例:按年、月、日等查询数据

PrivateSubcmdQuery_Click()
Dimstc as string
OnErrorResumeNext
SelectCasecombo1.ListIndex
Case0
stc="year"
Case1
stc="month"
Case2
stc="day"
EndSelect
Adodc.RecordSource="select stuID as 学号,stuName as 姓名,stuAge as 年龄,stuBornDate as 出生日期 from Student_Info where "& stc & "(stuBornDate)='"& txtQuery.Text & "'"
Adodc.Refresh
IfErr then Msgbox"请输入正确信息!",vbOKOnly,"错误"\
EndSub
PrivateSubForm_Load()
Adodc.ConnectonString="Provider=SQLOLEDB;Data Source=.;Initail Catalog=student;UID=sa;PWD=123456"
Adodc.RecordSource="select stuID as 学号,stuName as 姓名,stuAge as 年龄,stuBornDate as 出生日期 from Student_Info"
set DataGrid.DataSource=Adodc
combo1.AddItem"按年"
combo1.AddItem"按月"
combo1.AddItem"按日"
EndSub

免责声明:文章转载自《VB6.0操作SQL Server——增删改查》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇VMWare DOS 文件共享【转】Sonar扫描bug修复下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

删除数据高级用法:delete,truncate

1、语法:   delete 允许使用条件(删除符合条件的数据)      允许使用limit,限制删除的记录数。limit N         常见的是,limit配合order by来使用:先将结果排序,再删除固定数量的记录,如果只有order by的删除操作是没有意义的。  例子:delete from teacher order by days...

使用SQL Server语句统计某年龄段人数占总人数的比例(多层查询语句嵌套-比例分析)

需求:需统计出某个集合内,某个段所占的比例,涉及SELECT查询语句的嵌套,如有疑问可留言。 如下: --按性别进行年度挂号年龄段分析--男SELECT 年龄段,SUM(人数) 数量,cast(cast((SUM(人数)/((select count(*) from YXHIS2020..VTBMZGHMX2020 WHERE BTH=0 AND CXB=...

thinkphp5.0学习笔记(三)

1、thinkphp5的数据库操作 连接数据库库的方式   a、配置文件定义:配置文件位于applicationdatabase.php, 访问:$db::table('user')->select();   b、方法配置 Db::connect([ // 数据库类型 'type' => 'mysql',...

Docker Swarm 常用命令

# 管理配置文件 docker config     # 查看已创建配置文件     - docker config ls     # 将已有配置文件添加到docker配置文件中     - docker config create docker 配置文件名 本地配置文件  # 管理swarm节点 docker node     # 查看集群中的...

Linux性能优化实战学习笔记:第四十六讲

一、上节回顾 不知不觉,我们已经学完了整个专栏的四大基础模块,即 CPU、内存、文件系统和磁盘 I/O、以及网络的性能分析和优化。相信你已经掌握了这些基础模块的基本分析、定位思路,并熟悉了相关的优化方法。 接下来,我们将进入最后一个重要模块—— 综合实战篇。这部分实战内容,也将是我们对前面所学知识的复习和深化。 我们都知道,随着 Kubernetes、Do...

修改SQL Server2005 sa密码方法

在安装SQL server2005时没有设定sa的秘密,但其又没有默认空密码,所以,修改密码是个问题。 在SQL Server2005下修改sa密码的一种方法如下: 使用SQL Server2005的管理器(SQL Server Management Studio )登入数据库,登入时选择windows身份验证,即可登录,登录后,选中系统数据库,新建如下查...