C#调用sql存储过程
使用存储过程的优点和缺点
优点
1.降低网络传输数据量:通过存储过程的名称和参数传递即可调用执行,不用传输sql语句。
2.执行效率高:sqlserver会事先将存储过程编译成可执行的二进制代码,运行存储过程时,无需再次编译。
3.封装性:也可叫模块式编程,将实现某种功能的多条sql封装到一个对象中,可多次重复调用,可移植性强。
4.安全:可针对不同的权限的用户使用不同的存储过程。
缺点
1.调试麻烦,但是用 PL/SQL Developer 调试很方便!弥补这个缺点。
2.移植问题,数据库端代码当然是与数据库相关的。但是如果是做工程型项目,基本不存在移植问题。
3.重新编译问题,因为后端代码是运行前编译的,如果带有引用关系的对象发生改变时,受影响的存储过程、包将需要重新编译(不过也可以设置成运行时刻自动编译)。
4.如果在一个程序系统中大量的使用存储过程,到程序交付使用的时候随着用户需求的增加会导致数据结构的变化,接着就是系统的相关问题了,最后如果用户想维护该系统可以说是很难很难、而且代价是空前的,维护起来更麻烦。
创建
USE [newcharge_sys]
GO
/****** Object: StoredProcedure [dbo].[proc_OffLine] Script Date: 2018/2/26 8:17:09 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[proc_OffLine]@CardNo char(10),@StuNo char(11),@Date date,@Type char(10),@StuName char(10),@Sex char(10),@Department char(10),@OnDate date,@OnTime time(0),@Computer char(10),@Cash numeric(10, 3),@Offdate date,@Offtime time(0),@ConsumeTime char(10),@Consume numeric(18,1),@Status char(10)asdelete from OnLine_Info where CardNo = @CardNoupdate Linelog_Info setOffdate = @Offdate,Offtime = @Offtime,ConsumeTime = @ConsumeTime,Consume = @Consume,Cash = @Cash,Status = @StatuswhereCardNo = @CardNo and Ondate = @OnDate and Ontime = @OnTimeupdate Card_Info set Cash = @Cash where CardNo = @CardNo
调用
SqlParameter[] sqlparas = {//将存储过程中的名字与程序中的名字对应起来new SqlParameter("@CardNo",line[0].CardNo),new SqlParameter("@StuNo",line[0].StuNo),new SqlParameter("@Date",line[0].Date),new SqlParameter("@Type",line[0].CardType),new SqlParameter("@StuName",line[0].StuName),new SqlParameter("@Sex",line[0].Sex),new SqlParameter("@Department",line[0].Department),new SqlParameter("@OnDate",line[0].OnDate),new SqlParameter("@OnTime",line[0].OnTime),new SqlParameter("@Cash",line[0].Cash),new SqlParameter("@Computer",line[0].Computer),new SqlParameter("@Offdate",line[0].Offdate),new SqlParameter("@Offtime",line[0].Offtime),new SqlParameter("@ConsumeTime",line[0].ConsumeTime),new SqlParameter("@Consume",line[0].Consume),new SqlParameter("@Status",line[0].Status)};string procname = "proc_OffLine";sqlhelper.ExecuteNonQuery(procname, sqlparas, CommandType.StoredProcedure);
C#调用sql存储过程相关推荐
- JAVA调用SQL存储过程详解
1使用不带参数的存储过程 使用 JDBC 驱动程序调用不带参数的存储过程时,必须使用 call SQL 转义序列.不带参数的 call 转义序列的语法如下所示: {call procedure-nam ...
- java sql函数_Java调用Sql存储过程实例讲解
1.使用不带参数的存储过程 使用 JDBC 驱动程序调用不带参数的存储过程时,必须使用 call SQL 转 义序列.不带参数的 call 转义序列的语法如下所示: {call procedure-n ...
- 在Spring框架中使用SQL存储过程
Spring框架也支持对SQL存储过程的调用,SQL存储过程是一组预先定义好的SQL语句,并存储到数据库管理系统中,外部程序可以直接调用执行.本课主要讨论在Spring框架中应用程序如何调用MySQL ...
- ASP调用sql server 存储过程详解-附带实例-
ado文档对使用指定属性创建新的 Parameter 对象. 语法 Set parameter = command.CreateParameter (Name, Type, Direction, Si ...
- Java调用SQL Server的存储过程详解
本文较长,包含了如下几部分 使用不带参数的存储过程 使用带有输入参数的存储过程 使用带有输出参数的存储过程 使用带有返回状态的存储过程 使用带有更新计数的存储过程 1使用不带参数的存储过程 使用 JD ...
- java调用存储过程 sql server_Java中调用SQL Server存储过程示例
Java中调用SQL Server存储过程示例2007-09-03 08:48来源:论坛整理作者:孟子E章责任编辑:方舟·yesky评论(3) 最近做了个Java的小项目(第一次写Java的项目哦), ...
- jpa执行mysql存储过程_基于Spring Boot,使用JPA调用Sql Server数据库的存储过程并返回记录集合...
那么,有些情况,会把一些查询语句写在存储过程中,由存储过程来返回记录集. 在这里就先通过EntityManager创建命名存储过程的方法完成调用. 1.创建SQL存储过程 存储过程返回所有的联系人. ...
- 第七节:EF Core调用SQL语句和存储过程
一. 查询类(FromSql) 1.说明 A. SQL查询必须返回实体的所有属性字段. B. 结果集中的列名必须与属性映射到的列名相匹配. C. SQL查询不能包含关联数据 D. 除Select以为的 ...
- C#调用SQL中的存储过程中有output参数,存储过程执行过程中返回信息
C#调用SQL中的存储过程中有output参数,类型是字符型的时候一定要指定参数的长度.不然获取到的结果总是只有第一字符.本人就是由于这个原因,折腾了很久.在此记录一下,供大家以后参考! 例如: CR ...
最新文章
- 资源 | 来自独秀同学的深度网络数学笔记,还不快收藏?
- 2.Azure资源组迁移
- MySQL 之视图、 触发器、事务、存储过程、内置函数、流程控制、索引(二)
- Spring之高级装配(二)
- 生成树(STP)学习笔记
- 数据库名、实例名、数据库域名、全局数据库名、服务名 我也迷糊了
- canal下载 linux_阿里canal数据库同步ES使用
- [bzoj 4066]简单题
- [JNI]开发实例(1)封装libjpeg库 保证图片质量压缩图片
- 给语音信号加混响的常用方法(方法三)
- 屏幕录像软件camtasia2022汉化版好用的录屏软件
- 企业微信接入第三方应用(以服务商身份)
- Python.密码本生成
- 财报汇总 | 可口可乐、爱立信、中国平安、格林酒店等5家企业公布最新业绩
- 别混淆区别很大 LED网格屏和格栅屏区别对比及分析
- 在线CAD图纸批注功能方案比较与实现
- 以太网(Ethernet)通信简单理解
- springmvc 升级到5.2.15版本,前台时间显示时间戳全局处理
- cdma2000解析_LTE和CDMA2000互操作方案分析
- vue img初始化时不显示图片错误图标