存储过程是经过编译的,永久保存在数据中的一组SQL语句,通过创建和使用存储过程能够提高程序的重用性和扩展性,为程序提供模块化的功能,还有利于对程序的维护和管理。以下就详谈一下,VB.NET怎样调用SQL
SERVER中的存储过程。

以上就是本人数据库中的一张表—OnDutyInfo

创建存储过程

<span style="font-size:18px;">create procedure pro_OnDutyInfo    --存储过程名
@teacherID char(11) --參数名
as
select * from OnDutyInfo where teacherId <a target=_blank href="mailto:=@teacherID">=@teacherID</a> </span>

(该存储过程运行查询教师值班记录操作)

要实现的功能是,查询用户的值班记录,在VS中的实现代码

<span style="font-size:18px;"> Private Sub btnFind_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim strCon As String '连接数据库字符串
Dim cn As SqlConnection
Dim cmd As New SqlCommand
Dim pt As SqlParameter
Dim rdr As SqlDataReader
strCon = "initial catalog=ChargeSystem;user id=sa;password=123456"
cn = New SqlConnection(strCon) '实例化连接对象
cmd.Connection = cn
cmd.CommandText = "pro_OnDutyInfo" '存储过程名字
cmd.CommandType = CommandType.StoredProcedure '表明连接的类型为存储过程
pt = New SqlParameter("@teacherID", "11090241032") '获取參数
cmd.Parameters.Add(pt) '这是add方法,该方法仅仅能加入一个參数
cn.Open()
rdr = cmd.ExecuteReader '读取操作
If (rdr.Read) Then '通过数据流的形式来读取数据
MessageBox.Show(rdr(0).ToString)
End If End Sub</span>

以上操作就是一个简单的存储过程调用的操作,当然了大家可能会有问题,假设存储过程中的參数不止一个的话又该怎样操作呢?例如以下面的存储过程

我们看到当中会有非常多传入的參数,事实上非常easy,不用操心,仅仅需改一下加入的方法而已。

<span style="font-size:18px;">ALTER procedure [dbo].[pro_AddOffInfo]
@teacherId char(11), --职工号
@offTime time(0), --下机时间
@offDate date --下机日期
as
update OnDutyInfo set offTime=@offtime,offDate=@offdate where offtime is null and teacherid =@teacherId
--运行更新教师下机操作</span>

更改后的操作例如以下:

<span style="font-size:18px;">Dim paras As SqlParameter() = {New SqlParameter("@teacherId", En_OnDuty.teacherId), _
New SqlParameter("@offTime", En_OnDuty.offTime.ToString), _
New SqlParameter("@offDate", En_OnDuty.offDate.ToString)} '获取參数
cmd.Parameters.AddRange(paras) '注意这里换了一个方法</span>

以上就是实现VS调用SQL SERVER的小demo,也分析了ADD和ADDRanger的差别。

VS中调用SQL SERVER存储过程的更多相关文章

  1. Yii2.0调用sql server存储过程并获取返回值

    1.首先展示创建sql server存储过程的语句,创建一个简单的存储过程,测试用. SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE P ...

  2. qt调用sql server存储过程并获取output参数

    最近新做的一个项目需要使用qt5连接另一台机器上的sql server,虽然网上已有类似文章,但还是有些其中很少提及的问题,故在这里汇总下: qt连接sql server可以参考这篇文章: <Q ...

  3. java 调用 sql server存储过程

    Transact-SQL中的存储过程,非常类似于Java语言中的方法,它可以重复调用.当存储过程执行一次后,可以将语句缓存中,这样下次执行的时候直接使用缓存中的语句.这样就可以提高存储过程的性能. Ø ...

  4. Java的jdbc调用SQL Server存储过程Bug201906131119

    SQL Server数据库存储过程,一个查询使用动态sql,另一个不使用动态sql,这种情况,jdbc可能获取不到实际查询数据,虽然数据库中执行没问题. 解决方法,都使用静态sql,或都使用动态sql ...

  5. PHP调用SQL Server存储过程

    一.安装SQL Server Driver for PHP     在微软官网上发现了这个东西,他提供了一套PHP对MS2005/2008操作的全新函数库,并且支持UTF8,作为PHP的扩展运行.看来 ...

  6. Java调用SQL Server存储过程

    1.调用普通存储过程(1)创建存储过程CREATE Procedure [dbo].[GetContactListByName]  /*根据联系人姓名获取联系人信息*/@Name nvarchar(5 ...

  7. laravel调用sql server存储过程并取得ReturnValue

    alter proc [dbo].[aaa](    @AgencyID int,--代理商ID    @AdminID int --结算操作人ID(管理员ID))asbegin    select ...

  8. Java的jdbc调用SQL Server存储过程Bug201906131120

    如果要查询结果,第一行使用set nocount on;可能可以解决问题.

  9. C# 调用存储过程 Sql Server存储过程 存储过程报错,程序中的try

    C#程序调用Sql Server存储过程,存储过程中报错情况,返回值... 0.SQL存储过程 USE [Opos] GO /****** Object: StoredProcedure [dbo]. ...

随机推荐

  1. 云告警平台 OneAlert :如何帮助运维工程师做好汇报?

    OneAlert 是北京蓝海讯通科技有限公司旗下产品,中国首个 SaaS 模式的云告警平台,可集成 Zabbix ,Nagios ,Solarwinds ,AWS CloudWatch ,阿里云 ,监 ...

  2. Java中对List集合的排序

    方法一: 第一种方法,就是list中对象实现Comparable接口,代码如下: 实体类: public class Person implements Comparable<Person> ...

  3. [TSP+floyd]POJ3311 Hie with the Pie

    题意: 给i到j花费的地图 1到n编号   一个人要从1遍历n个城市后回到1 求最小的花费(可以重复走) 分析 http://www.cnblogs.com/Empress/p/4039240.htm ...

  4. SPRING IN ACTION 第4版笔记-第四章ASPECT-ORIENTED SPRING-009-带参数的ADVICE2 配置文件为XML

    一. 1.配置文件为xml时则切面类不用写aop的anotation package com.springinaction.springidol; public class Magician impl ...

  5. RUST叫系统编程语言,而GO是网络编程语言

    用GO你必须要搞清楚一点,GO不是面向CPU密集计算的,而是面向IO密集计算的!!!RUST才是面向CPU密集计算的语言,所以RUST叫系统编程语言,而GO是网络编程语言.GO跟JAVA的Spring ...

  6. java文件IO操作

    package com.io; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream ...

  7. Linux 的档案权限与目录配置

    档案权限 Linux最优秀的地方之一,就在于他的多人多任务环境. 而为了让各个使用者具有较保密的档案数据,因此档案的权限 管理就变的很重要了. Linux一般将档案可存取的身份分为三个类别,分别是 o ...

  8. c程序设计语言_习题1-9_将输入流复制到输出流,并将多个空格过滤成一个空格

    Write a program to copy its input to its output, replacing each string of one or more blanks by a si ...

  9. 为SharePoint网站创建自定义导航菜单

    转:http://kaneboy.blog.51cto.com/1308893/397779 相信不少人都希望把SharePoint网站内置的那个顶部导航菜单,换成自己希望的样式.由于SharePoi ...

  10. spring--处理器拦截器详解——跟着开涛学SpringMVC

    5.1.处理器拦截器简介 Spring Web MVC的处理器拦截器(如无特殊说明,下文所说的拦截器即处理器拦截器) 类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理. ...