设为首页 收藏本站
查看: 1150|回复: 0

[经验分享] VB6.0操作SQL Server——增删改查

[复制链接]
累计签到:2 天
连续签到:1 天
发表于 2015-7-3 14:32:26 | 显示全部楼层 |阅读模式
http://www.iyunv.com/Miss-Lin/archive/2012/08/13/2635848.html
  
一、数据录入
  通过VB向SQL 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


Private Sub cmdAdd_click()
  
      Adodc1.Recordset.AddNew
  
End Sub
  
Private Sub cmdSave_click()
  
     Dim I as Long
  
     for I =0 to 6
  
          Adodc.Recordset.Fields(i).value=Text(i+1).text
  
     Next I
  
     Adodc1.Recoedset.Update
  
     MsgBox"添加信息成功!"
  
End Sub
  
2.使用Insert语句录入数据
     使用SQL语句录入数据,通过connection对象的execute方法执行SQL语句,语法如下:
      connection.execute 字符串,记录数,字符串参数
  例:向student数据库中添加一条学生信息




?


Dim cnn as ADODB.conection
  
Dim rst as ADODB.recordset
  
Private sub Form_Load()
  
    set cnn=New ADODB.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
  
End Sub
  
Private sub cmdAdd_click()
  
   cnn.execute"insert into student_info(txtSID,txtName,txtSex;txtBornData,txtRuDate,txtClassNo)" & _
  
          "value('" & txtSID & "','" & txtName & "','" & txtSex & "','" & txtBornDate & "','" & txtRuDate & "','" & txtClassNo & "')"
  
End Sub
  
二、数据删除
  通过VB删除数据时,不仅可以使用SQL语句中的Delete语句来实现,也可以使用ADO控件Delete方法来删除数据。
1.使用ADO控件Delete方法删除数据
  使用ADO控件Delete方法删除数据时,被删除的数据信息表面上是被删除了,实质上数据还存在与内存中,这时还需要使用ADO控件的Update方法才能够将数据彻底地删除
  例:删除表中的指定记录:
Adodc1.Recordset.Delete
Adodc1.Recordset.Update
  例:通过ADO控件Delete方法删除表中指定的数据:




?


Private Sub Form_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"
  
  Set DataGrid1.DataSource=Adodc1
  
End Sub
  
Private Sub Command1_Click()
  
  Adodc1.Recordset.Delete
  
  If Msgbox("确认删除指定数据吗?",vbYesNo,"提示")=vbYes then
  
     Adodc1.Recordset.Refresh
  
  End If
  
End Sub
  
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方法删除表中列的数据




?


Private Sub Command1_Click()
  
  Adodc1.Recordset.Update 1,Nul
  
End Sub
  
  
三、数据修改
  在VB中修改数据,不仅仅可以采用执行SQL语句实现,也可以通过数据绑定控件进行数据的修改。数据绑定控件进行数据的修改采用的代码较少,特别是一些表格类数据绑定控件,不需要代码即可对数据进行修改,如DataGrid控件。
1.使用Update语句修改数据
  Update语句通过ADO对象的Execute方法执行,达到对数据表中的数据进行修改
  Cnn.Execute"Update 数据表名称 set 字段1=表达式1,字段2=表达式2……where子句"
  在Update语句中可以使用where子句,还有符合条件的数据可执行修改操作,如果使用where指定条件,则Update语句会修改表中的全部数据
  通常都是在批量更改时采用该语句,这种方法要比ADO的Update方法逐条地修改数据方便,但VB中一些表格控件可以不需要代码而直观实现数据的批量修改
2.表格数据绑定控件修改数据
  在VB中采用表格数据绑定修改控件修改数据,基本上不需要代码,只需要设置表格数据绑定控件的一些属性即可实现,例如DataGrid控件,将其绑定到相应的数据源上,再设置其AllowUpdate属性为True,即可实现表格中修改的数据及时更新到数据库中
  该属性可返回或设置一个值,指示用户能否修改DataGrid控件中的数据,语法:
  DataGrid.AllowUpdate=布尔表达式
  例:使用DataGrid控件修改数据




?


Private Sub Form_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控件绑定数据源
  
Set DataGrid1.DataSouce=Adodc1
  
  '允许DataGrid1控件更新表中的数据
  
DataGrid1.AllowUpdate=True
  
End Sub
  
3.使用文本数据绑定控件修改数据
  与DataGrid控件不同,文本类控件绑定数据后在修改数据时,由于所修改的数据只是写入在缓存当中,所以需要通过ADO的Update方法提交修改,另外,ADO还提供CancelUpdate方法,用此方法来撤销在使用Update方法前对数据所作的修改,在程序中使用CancelUpdate方法的代码如下:Adodc1.Recordset.CancelUpdate
  例:使用文本控件绑定数据并进行修改数据




?


'设置连接字符串与数据源,并绑定数据源
  
Private Sub Form_Load()
  
Adodc1.ConnectiongString="Provider=SQLOLEDB;Persist Security Info=True;User ID=sa;Initial Catalog=student;Data Source=."
  
Adodc1.RecordSource="select * from Course_Info"
  
Set Text1.DataSource=Adodc1
  
Text1.DataField="课程名称"
  
End Sub
  
'提交保存数据
  
Private Sub Commad1_Click()
  
Adodc1.Recordset.Update
  
MsgBox"保存成功!",vbOKOnly,"提示"
  
End Sub
  
  '撤销数据修改
  
Private Sub Command2_Click()
  
Adodc1.Recordset.CancelUpdate
  
End Sub
  
  
四、数据查询
  VB中查询数据库中的数据不仅可以通过执行SQL语句实现,也可以通过控件或对(如ADO)限定检索数据的条件来实现。
1.简单查询
  简单查询可以通过Select语句限定数据源来实现。在Select语句中使用关键字、子句等实现。
  下面对几种常用的简单查询进行介绍:
1)使用AS改变查询数据的列名
  多数情况下,在SQL Server中创建表的字段都是以英文命名的,这些字段名在显示时给一般用户带来不便,那么可以在查询中采用AS来改变字段在显示时的名称。
  例:使用AS改变查询数据的列名




?


Private Sub cmdModify_Click()
  
     Adodc.RecordSource="select ID as 编号,Mailbox as 电子邮箱 from Mail_Info"
  
     Adodc.Refresh
  
End Sub
  

2)计算查询的结果
  VB编写的程序中,往往需要将数据库中的数据进行计算,以便获得所需的数值。
  通过在查询语句中使用算术运算符,在配合AS为计算出的字段设置名称,即可在查询结果中显示计算得到的数据。
  例:计算查询的结果




?


Private Sub cmdAcount_Click()
  
    Adodc.RecordSource="select 卡号,每小时上机费用,上机时间(每小时上机费用*上机时间)as 收费金额 from 学生上机收费金额表"
  
    Adodc.Refresh
  
End Sub
  
3)比较条件查询
  在查询语句中可以包含比较运算,常用的比较运算符有=、、、!>、!=、、=、

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-82872-1-1.html 上篇帖子: 为SQL Server 2005启用对 4 GB 以上物理内存的支持 下篇帖子: SQL SERVER数据库备份时出现“操作系统错误5(拒绝访问)。BACKUP DATABASE 正在异常终止。”错误的解决办法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表