VS中调用SQL SERVER存储过程
存储过程是经过编译的,永久保存在数据中的一组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存储过程的更多相关文章
- Yii2.0调用sql server存储过程并获取返回值
1.首先展示创建sql server存储过程的语句,创建一个简单的存储过程,测试用. SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE P ...
- qt调用sql server存储过程并获取output参数
最近新做的一个项目需要使用qt5连接另一台机器上的sql server,虽然网上已有类似文章,但还是有些其中很少提及的问题,故在这里汇总下: qt连接sql server可以参考这篇文章: <Q ...
- java 调用 sql server存储过程
Transact-SQL中的存储过程,非常类似于Java语言中的方法,它可以重复调用.当存储过程执行一次后,可以将语句缓存中,这样下次执行的时候直接使用缓存中的语句.这样就可以提高存储过程的性能. Ø ...
- Java的jdbc调用SQL Server存储过程Bug201906131119
SQL Server数据库存储过程,一个查询使用动态sql,另一个不使用动态sql,这种情况,jdbc可能获取不到实际查询数据,虽然数据库中执行没问题. 解决方法,都使用静态sql,或都使用动态sql ...
- PHP调用SQL Server存储过程
一.安装SQL Server Driver for PHP 在微软官网上发现了这个东西,他提供了一套PHP对MS2005/2008操作的全新函数库,并且支持UTF8,作为PHP的扩展运行.看来 ...
- Java调用SQL Server存储过程
1.调用普通存储过程(1)创建存储过程CREATE Procedure [dbo].[GetContactListByName] /*根据联系人姓名获取联系人信息*/@Name nvarchar(5 ...
- laravel调用sql server存储过程并取得ReturnValue
alter proc [dbo].[aaa]( @AgencyID int,--代理商ID @AdminID int --结算操作人ID(管理员ID))asbegin select ...
- Java的jdbc调用SQL Server存储过程Bug201906131120
如果要查询结果,第一行使用set nocount on;可能可以解决问题.
- C# 调用存储过程 Sql Server存储过程 存储过程报错,程序中的try
C#程序调用Sql Server存储过程,存储过程中报错情况,返回值... 0.SQL存储过程 USE [Opos] GO /****** Object: StoredProcedure [dbo]. ...
随机推荐
- cocos2d-html5 Layer 和 Scene 创建模式
var myLayer = cc.Layer.extend({ init:function() {//2 界面 var bRet = false; if (this._super()) { bRet ...
- [unity菜鸟] controller.SimpleMove(transform .forward); 无法移动
今天做demo时遇到一个问题:当使用角色控制器操作物体,用 controller.SimpleMove(transform .forward); 语句时物体不能移动,搜索请教了很久,最后终于googl ...
- 166. Fraction to Recurring Decimal
题目: Given two integers representing the numerator and denominator of a fraction, return the fraction ...
- spring junit class path resource [ /com/config/spring-core.xml] cannot be opened because it does not exist
正确写法应该如下: @RunWith(SpringJUnit4ClassRunner.class) //@ContextConfiguration(locations="classpath: ...
- 《virtualbox完全学习手册》
<virtualbox完全学习手册>之VirtualBox开源版和闭源版的区别 <virtualbox完全学习手册>之 玩转virtualbox的虚拟BIOS <virt ...
- HDU4739Zhuge Liang's Mines(状压)
链接 预处理出只有四个1的情况存入数组中 然后状压下 #include <iostream> #include<cstdio> #include<cstring> ...
- 定制属于自己的自动化安装的linux系统镜像
使用软件和平台 1.基于平台: Vmware workstation 8.0 2.基于系统镜像: rhel-server-5.8-i386 ...
- TreeMap源码解析
1.TreeMap介绍 TreeMap是一个通过红黑树实现有序的key-value集合. TreeMap继承AbstractMap,也即实现了Map,它是一个Map集合 TreeMap实现了Navig ...
- 普通Java类获取spring 容器的bean的5种方法
方法一:在初始化时保存ApplicationContext对象方法二:通过Spring提供的工具类获取ApplicationContext对象方法三:继承自抽象类ApplicationObjectSu ...
- object c小代码——日期篇
1.判断两个日期是否是同一天,不要求小时,分钟要一样 用法 NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier: ...