分享

VB中的SQL语言——增、删、改、查

 hdzgx 2019-12-07

     结构化查询语言简称SQL,SQL是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。SQL语言主要有四个部分:数据定义语言、数据操纵语言、嵌入式SQL语言的使用规定、数据控制语言。今天我们介绍其中的一部分,数据操纵语言——增、删、改、查。

SQL语言是一种交互式查询语言,允许用户直接查询存储数据,但它不是完整的程序语言,如它没有DO或FOR类似的循环语句,因此它可以嵌入到另一种语言中,借用VB、VB.NET、C、JAVA等高级语言对关系数据库进行操作。在做学生管理系统和机房收费系统时,我们配置ODBC用于连接数据库与VB,在模块中定义函数ExecuteSQL用于执行SQL语句。等做好这些工作后,我们就可以在VB中对数据库进行操作了。下面介绍一下在VB中如何利用SQL语句操纵数据库。

一、数据查询(以查询学生信息为例)

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

例1 比较条件查询

  1. txtsql = "select * from student_info where cardno= '" & txtCardNO & "'" '查询student_info中cardno为某一限定值的记录
  2. set mrc = ExecuteSQL(txtsql,msgtext) '执行SQL语句

例2  计算查询结果

 在机房收费系统中的实现结账功能的代码中用到了此类代码:

  1. <span style="white-space:pre"> </span>txtsql = "select sum(addmoney) from recharge_info where date = '" & Date & "'" '查询Recharge_info中addmoney字段值的综合
  2. <span style="white-space:pre"> </span>Set mrc = ExecuteSQL(txtsql, msgtext) '执行SQL语句
  3. <span style="white-space:pre"> </span>txtRechargeCash.Text=mrc.fields(0) '将查询出来的结果赋值给文本框

以上的两个例子中的Where子句是Select语句中最常用的限定条件,另外还有AS子句、Like子句等。虽然,Select查询语句有很多种,但它们共通的一点是只要查询某一特定的记录时,在Select查询语句中就会出现限定条件。

二、数据注入(已添加学生信息为例)

1、我们在VB中引用ADO实现访问所用到的数据中的数据,通过AddNew方法添加一条新的记录,再通过Update方法保存当前的记录。

  1. txtsql = "select * from student_info " '查询出student_info表
  2. set mrc = ExecuteSQL(txtsql,msgtext) '执行SQL语句
  3. mrc!StuNO=Trim(txtStuNo.Text)
  4. mrc!StuName=Trim(txtStuName.Text)
  5. mrc!Class=Trim(txtClass.Text)
  6. : :
  7. <span style="white-space:pre"> </span>'向数据库中添加信息
  8. mrc.Update '更新数据库


2、使用Insert 语句向数据库注入数据

  1. txtsql = "insert into student_info(Student_ID,Student_Name,Student_Sex,ClassNo,Grade,born_date,ru_date)" values ('" & txtStuID & "','" & txtName & "','" & txtSex & "','" & txtClassNO & "','" & txtGrade & "','" & txtborn_date & "','" & txtRuDate & "')" <span style="white-space:pre"> </span>'向student_info中注入数据
  2. set mrc = ExecuteSQL(txtsql,msgtext) <span style="white-space:pre"> </span> <span style="white-space:pre"> </span>'执行SQL语句

用Insert语句往数据库中注入数据的时候,要做到每一个字段与文本框的值一一对应,否则数据库注入数据时就会出现错误。

另外,还有两个注意的地方:

1、如果向表中特定的字段中插入数据时,在Insert语句中应该把字段指定出来,如:

  1. txtsql = "insert into student_info(Student_ID,Student_Name,Student_Sex" & value ('" & txtStuID & "','" & txtName & "','" & txtSex & "')" '向student_info表中student_id,student-name,student_sex列中插入数据
  2. Set mrc = ExecuteSQL(txtsql,msgtext) <span style="white-space:pre"> </span>'执行SQL语句

2、如果表中包含主键,请确保唯一的非Null值注入到主键字段,否则数据库无法注入数据。

三、数据删除(以删除学生信息为例)

1、我们在VB中引用ADO实现访问所用到的数据中的数据,通过Delete方法删除一条记录,再通过Update方法更新当前的记录。

  1. txtsql="select * from student_info where cardno = '" & txtCardNo & "'" '选择一条指定的记录
  2. set mrc =ExecuteSQL(txtsql,msgtext) '执行SQL语句
  3. mrc.Delete '将其删除
  4. mrc.Update

2、使用Delete语句,不仅可以删除指定的一条或多条记录,也可以将表中所有记录删除
  1. txtsql="delete student_info where cardno= '" & txtCardNo & "'" '删除student_info表中指定cardno字段的值的一条记录
  2. set mrc = ExecuteSQL(txtsql,msgtext) '执行SQL语句
  1. txtsql="delete student_info " "删除student_info表中所有记录
  2. set mrc = ExecuteSQL(txtsql,msgtext) '执行SQL语句

四、数据修改(以修改学生信息为例)

1、我们利用Select语句查询出所要修改的记录,修改其某一字段的值,再通过Update方法更新所修改的记录。

  1. txtsql = " select * from student_info where cardno= '" & txtCardno & "'" '查询出要修改的记录
  2. Set mrc =ExecuteSQL(txtsql,msgtext) '执行SQL语句
  3. mrc!Name=Trim(txtName.Text)
  4. mrc!StuNO=Trim(txtStuNo.Text)
  5. mrc!Class=Trim(txtClass.Text) '修改数据信息
  6. mrc.Update '更新数据库


2、直接利用Update语句修改数据信息
  1. txtsql = " Update student_info Set Name= '" & txtName & "',StuNo = '" & txtStuNo & "',Class= '" & txtClass & "' where cardno= '" & txtCardNo & "'where cardno= '" & txtCardno & "'" '修改指定记录的数据
  2. Set mrc =ExecuteSQL(txtsql,msgtext)

VB中的SQL语句可以实现直接对数据库进行操纵,也可以弥补SQL不是完整的程序化语言这一缺点。那么,我们不禁在想在VB和SQL Server中的SQL语句有何不同呢?现在,我们来看一下SQL Server中的SQL语句(增、删、改、查)各自的语法。

       Select 语句Select * from 表名称 where 列名称=某值

        insert 语句Insert into 表名称(例1,例2,....)values (值1,值2,.....)

update 语句  Update 表名称 set 列名称=新值 where 列名称=某值

delete语句Delete from 表名称 where 列名称=某值

从这篇文章不难看出,在VB中操作SQL语句其实与在SQL Server中是一样的。我们在SQL Sever中的SQL语句正确,那么在VB中,我们将VB控件(文本框、标签、组合框等)中的值赋予某一限定条件就行了。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多