asp.net 常用的几种调用存储过程的方法
(1)简单的无参数存储过程
create procedure ExpOne
as
select top 10 * from Corp
go
C#调用此存储过程
SqlConnection con = new SqlConnection(connstr);
string procedurestr = "存储过程名";
SqlCommand cmd = new SqlCommand(procedurestr, con);
con.Open();
cmd.CommandType = CommandType.StoredProcedure;
i = cmd.ExecuteNonQuery();//这里是返回一个最后一次执行所影响的行数.
//如果行数没有受影响,返回 -1.
con.Close();
(2)通过存储过程使用隐式内联参数
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER procedure [dbo].[GetCorp]
@id int
as
select * from Corp where id=@id
C#中调用上面的存储过程
SqlConnection con = new SqlConnection(connstr);
string sqltext = "存储过程名";
SqlCommand cmd = new SqlCommand(sqltext, con);
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter p = new SqlParameter("@id", DbType.Int32);
p.Direction = ParameterDirection.Input;
p.Value = 1739;
cmd.Parameters.Add(p);
con.Open();
SqlDataReader sdr = cmd.ExecuteReader();
if (sdr.Read())
{
rtn = sdr["UserName"].ToString() + sdr["CorpName"].ToString() + sdr["Intro"].ToString();
}
sdr.Close();
con.Close();
从上面代码可以看出,但参数个数非常多的时候其实也是非常麻烦的,目前还没有找到好的解决办法,大家可以使用参数数组,如果有更好的办法欢迎一起探讨.
SqlParameter[] p ={ new SqlParameter("@id", SqlDbType.Int, 4), new SqlParameter("@UserName", SqlDbType.NVarChar, 50) };
p[0].Value = 1739;
p[0].Direction = ParameterDirection.Input;
p[1].Direction = ParameterDirection.Input;
foreach (SqlParameter pm in p)
{
cmd.Parameters.Add(pm);
}
(3)通过存储过程调用显式的参数
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER procedure [dbo].[GetMyCorp]
@id int,@UserName nvarchar(50) output
as
select @UserName=UserName from t_jc_corp where id=@id
在asp.net 中调用该存储过程 得到输出参数 @UserName
SqlConnection con = new SqlConnection(connstr);
con.Open();
string procedurename = "GetMyCorp";
SqlCommand cmd = new SqlCommand(procedurename, con);
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter p1 = new SqlParameter();
p1 = cmd.Parameters.Add("@id",SqlDbType.Int,4);
p1.Direction = ParameterDirection.Input;
p1.Value = 1739;
SqlParameter p2 = new SqlParameter();
p2 = cmd.Parameters.Add("@UserName", SqlDbType.NVarChar, 50);
p2.Direction = ParameterDirection.Output;
SqlDataReader sdr = cmd.ExecuteReader();
sdr.Close();
rtn = p2.Value.ToString();
asp.net 常用的几种调用存储过程的方法的更多相关文章
- jdbc调用存储过程的方法
----------------------------jdbc调用存储过程的方法---------------------------------------------------private ...
- ASP.Net:Javascript 通过PageMethods 调用后端WebMethod方法 + 多线程数据处理 示例
ASP.Net:Javascript 通过PageMethods 调用后端WebMethod方法 + 多线程数据处理 示例 2012年04月27日 16:59:16 奋斗的小壁虎 阅读数:4500 ...
- entity framework core 调用存储过程和方法
目前EF Core调用存储过程,限制很多,比如返回结果必须是定义好的DbSet<>等等.这里用一种曲线救国的方式,自定义两个方法,用原始ado.net解决问题.以MySql数据库为例,代码 ...
- 【Java EE 学习 29 下】【JDBC编程中操作Oracle数据库】【调用存储过程的方法】
疑问:怎样判断存储过程执行之后返回值是否为空. 一.连接oracle数据库 1.需要的jar包:在安装的oracle中就有,所以不需要到官网下载,我的oracle11g下:D:\app\kdyzm\p ...
- hibernate的update() 更新延迟或者无法更新,导致同个service调用存储过程执行方法不精确
hibernate的update()方法无法更新,不报错 原因是hibernate的update方法操作的是缓存,可以flush下先. 设置缓存为false理论上也可. 在一个serivce方法里,执 ...
- (copy)赋值构造函数的4种调用时机or方法
第一种调用方法: demo #include <iostream> using namespace std; class Text { public: Text() // 无参数构造函数 ...
- ASP.NET4.0中JavaScript脚本调用Web Service 方法
环境:VS2019 .net 4.0 framework 根据教材使用ScriptManager在JavaScript中调用Web service 时,失败.现将过程和解决方法记录如下: 1.定义W ...
- VB调用存储过程 - CreateParameter 方法
这次又转为VB6了....... (┬_┬) ---------------------------------------------------------------------------- ...
- sqlserver 2008 存储过程调用存储过程或方法
函数:拆分字符串,并返回一个table CREATE FUNCTION [dbo].[f_splitSTR](@s varchar(max), --待分拆的字符串@split varchar(10) ...
随机推荐
- 使用getJSON()方法异步加载JSON格式数据
使用getJSON()方法异步加载JSON格式数据 使用getJSON()方法可以通过Ajax异步请求的方式,获取服务器中的数组,并对获取的数据进行解析,显示在页面中,它的调用格式为: jQuery. ...
- lintcode:最大子数组差
题目 最大子数组差 给定一个整数数组,找出两个不重叠的子数组A和B,使两个子数组和的差的绝对值|SUM(A) - SUM(B)|最大. 返回这个最大的差值. 样例 给出数组[1, 2, -3, 1], ...
- Entity Framework: Get mapped table name from an entity
The extension methods I have created one extension method for DbContext and other for ObjectContext: ...
- java获取当前操作系统的信息
java获取当前操作系统的信息 JavaOS虚拟机UnixEXT 从网上收集的一些关于java获取操作系统信息的方法,现在总结一下: 1获取本机的IP地址: private static Strin ...
- Java API —— BigInteger类
1.BigInteger类概述 可以让超过Integer范围内的数据进行运算 2.构造方法 public BigInteger(String val) 3.BigInteger类 ...
- Windows Tomcat 安装
JDK的安装可以参考 http://www.cnblogs.com/emanlee/p/3702535.html ,然后安装apache-tomcat step1:http://tomcat.apac ...
- C#调用java程序
前言: 最近跟项目组的人合作一个项目,由于之前我用的是java写的一个与android通信的程序,现在另一个同事来编写界面程序,由于C#编写起来比较方便,而我又不想重新写之前java的那段代码,于是需 ...
- dp,px转换
public static int dip2px(Context context, float dpValue) { final float scale = context.getRes ...
- POJ 2516 最小费用流
依然最小费用最大流模板题 建边麻烦了些 #include <cstdio> #include <cstring> #include <iostream> #incl ...
- ASP.NET MVC @helper使用说明
简单的 @helper 方法应用场景 Razor中的@helper语法让您能够轻松创建可重用的方法,此方法可以在您的视图模板中封装输出功能.他们使代码能更好地重用,也使代码更具有可读性. 在我们定义@ ...