Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

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

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

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

?
'设置连接、数据源与初始化程序
 
Private Sub Form_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"="
 
End Sub
 
  
 
'查询信息以及错误处
 
Private Sub cmdQuery_Click()
 
      On Error Resume Next
 
      If Combo1.text<>"" and Combo2.text<>"" then
 
             Adodc.Recordset.Filter=Adodc.Recordset.Fields(Combo1.ListIndex).Name & Combo2.Text & "" & Trim(txtQuery.text) & ""
 
      End If
 
      If Err then Msgbox"请输入正确信息!",vbOKOnly,"警告"
 
End Sub
  

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

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

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

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

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

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

?
Private Sub cmdQuery_Click()
 
       On Error Resume Next
 
       Adodc.Recordset.Filter="出生日期="' & Trim(txtYear.Text) & "-" & Trim(txtMonth.Text) & "-" & Trim(txtDay.Text) & "0:00:00"'
 
       If Err then Msgbox"请输入正确信息!",vbOKOnly,"错误"
 
End sub
 
  
 
Private Sub Form_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
 
End Sub
  

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

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

?
Private Sub cmdQuery_Click()
 
    Dim stc as string
 
    On Error Resume Next
 
    Select Case combo1.ListIndex
 
    Case 0
 
          stc="year"
    Case 1
 
          stc="month"
 
    Case 2
 
          stc="day"
 
    End Select
 
    Adodc.RecordSource="select stuID as 学号,stuName as 姓名,stuAge as 年龄,stuBornDate as 出生日期 from Student_Info where " & stc & "(stuBornDate)='" & txtQuery.Text & "'"
 
    Adodc.Refresh
 
    If Err then Msgbox"请输入正确信息!",vbOKOnly,"错误"\
 
End Sub
 
  
 
Private Sub Form_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"按日"
 
End Sub

转载于:https://blog.51cto.com/ycluwq/1691154

通过VB向SQL Server数据库中录入数据相关推荐

  1. 如何对两个大型SQL Server数据库中的数据进行快速估计比较,以查看它们是否相等

    Bringing impactful analysis into a data always comes with challenges. In many cases, we rely on auto ...

  2. C#同步SQL Server数据库中的数据--数据库同步工具[同步已有的有变化的数据]

    C#同步SQL Server数据库中的数据--数据库同步工具[同步已有的有变化的数据] 1. C#同步SQL Server数据库Schema 2. C#同步SQL Server数据库中的数据--数据库 ...

  3. C# 从SQL server 数据库中调取数据并将返回结果加入menustrip控件中,并对单击控件选项后变化进行编辑

    首先此操作需要自己增加调用的库有System.Data.SqlClient 调用好库后进行下一步操作:连接数据库 string datasource = "10.61.1.77,1433&q ...

  4. SQL Server数据库中创建数据表及数据类型操作应用

    创建表 使用的SQL命令:create table 格式: create table table_name ( list_name type() Y|N null yard, ) eg: 创建AM数据 ...

  5. VB访问SQL Server数据库技术全揭密

    VB访问SQL Server数据库技术全揭密 2006-08-03 05:00作者:出处:电子技术责任编辑:方舟 摘 要: 本文讨论了Visual Basic应用程序访问SQL Server数据库的几 ...

  6. SQL Server数据库中批量导入数据的四种方法总结

    在软件项目实施的时候,数据导入一直是项目人员比较头疼的问题.其实,在SQL Server中集成了很多成批导入数据的方法.有些项目实施顾问头疼的问题,在我们数据库管理员眼中,是小菜一碟.现在的重点就是, ...

  7. 利用Visual Studio Project自动将数据加载到SQL Server数据库中

    介绍 (Introduction) A few months back, I encountered an interesting challenge at a client site. For th ...

  8. 在ASP.NET中将图片存储到Sql Server数据库中

    在ASP.NET中将图片存储到Sql Server数据库中 http://hi.baidu.com/rayshow/blog/item/360e8ff9662c8b5a252df268.html 索引 ...

  9. 清空SQL Server数据库中所有表数据的方法(转)

    清空SQL Server数据库中所有表数据的方法 其实删除数据库中数据的方法并不复杂,为什么我还要多此一举呢,一是我这里介绍的是删除数据库的所有数据,因为数据之间可能形成相互约束关系,删除操作可能陷入 ...

最新文章

  1. Educational Codeforces Round 12 A. Buses Between Cities 水题
  2. 解决Com调用AutoCAD被呼叫方拒绝接收呼叫
  3. C#操作SQLite数据库时出现“Insufficient parameters supplied to the command”的错误
  4. AndroidManifest.xml配置文件属性详解
  5. 在maven中开发Spring需要的jar依赖
  6. 第八章 JQuery操作DOM
  7. Dreamweaver/Flash CS4安装后打开时提示此产品的许可已停止工作
  8. 计算机固态硬盘装系统,固态硬盘装系统,小编教你固态硬盘如何装系统
  9. 海底捞“清疮”300店:千亿龙头的虚与实
  10. javaFX,Scene Builder引入Jfoenix
  11. 怎样将纸质文档转换成图片,然后转换成word文字
  12. matlab:已知传递函数,求单位阶跃响应
  13. Quartz 2.4.0 源码解析
  14. 360提示证书风险问题
  15. 浙大计算机博士生奖学金,浙大打破读研津贴“大锅饭” 奖学金最高8万元
  16. 2022-2028年中国光声成像系统行业市场调研分析及发展规模预测报告
  17. ‘XXX‘ is declared but its value is never read.
  18. Matlab图论工具箱
  19. 计算机科学竞赛加拿大,含金量堪比AMC的数学竞赛:加拿大滑铁卢竞赛(上)|考点及难度独家深度对比...
  20. 推荐系统学习笔记03-矩阵分解和FM

热门文章

  1. leetcode119. 杨辉三角 II 你能比我代码更短吗?
  2. 数据的存储特殊矩阵压缩存储【数据结构F】
  3. C++(STL):17---deque之迭代器使用
  4. 处理机器学习大数据的7种方法
  5. win10此电脑不见了_教程 | win10总提示“你要允许此应用对电脑的修改吗”,如何关闭?...
  6. 数学建模 线性规划模型基本原理
  7. WebLogic启动失败:java.lang.AssertionError: Could not obtain the localhost address.
  8. 运动并不是最好的减肥办法,控制饮食也不是
  9. 一周工作60个小时并不值得骄傲,这是个问题!
  10. 在CentOS 6上搭建LNMP环境