1.编写存储过程

 if exists (select * from sysobjects where id = object_id(N'[sp_calcPci_of_baseRcd_GTmpTbl]') and OBJECTPROPERTY(id, N'IsProcedure') = )
drop PROCEDURE [dbo].[sp_calcPci_of_baseRcd_GTmpTbl] CREATE PROCEDURE [dbo].[sp_calcPci_of_baseRcd_GTmpTbl]
--定义参数
@bdindexId INT ,
@groupId INT,
@disVal INT ,
@retVal INT OUTPUT, -- 返回值
@routeType INT --WITH ENCRYPTION -- 加密
AS
BEGIN
DECLARE @pciCalcRcdId0 INT
--执行另外一个存储过程,输出参数需带上关键字‘OUTPUT’
EXEC dbo.procGetCurNo 'PCA_T_D_PCICalcRcd', @pciCalcRcdId0 OUTPUT
IF( @pciCalcRcdId0 <= )
BEGIN--sql中没有{},以BEGIN、END代替
SET @retVal = -
RETURN -;
END SET @curSegIndex = ; --变量赋值
--为查询结果定义游标
DECLARE segListCursor CURSOR
FOR
SELECT section_code ,pav_type ,segment_code ,begin_mile ,end_mile ,segment_length, lane_width
FROM dbo.ZY_T_D_Segment
WHERE route_code = @routeCode AND up_down = @direction AND lane = @lane
AND begin_mile < @endMile AND end_mile > @beginMile AND valid_flag=
ORDER BY begin_mile;
--打开游标
OPEN segListCursor;
--按行取值
FETCH NEXT FROM segListCursor INTO @sectionCode, @pavType,
@segmentCode, @segBeginMile, @segEndMile, @segLength, @laneWidth;
WHILE @@FETCH_STATUS =
BEGIN --
---处理---
FETCH NEXT FROM segListCursor INTO @sectionCode,
@pavType, @segmentCode, @segBeginMile, @segEndMile,@segLength, @laneWidth;
END;
CLOSE segListCursor;--关闭游标
DEALLOCATE segListCursor;--释放游标 deallocate -- 将临时表中的数据插入到实际表a_test中
SET @insertSql = 'INSERT INTO ' + @pavDataLocTable + ' SELECT * FROM ' + @tempPavDataLocTable
EXEC sys.sp_executesql @insertSql
SET @insertSql = 'INSERT INTO ' + @pciCalcTable + ' SELECT * FROM ' + @tempPciCalcTable
EXEC sys.sp_executesql @insertSql DROP table [dbo].[##pavDataLoc_temp_table]
DROP table [dbo].[##pciCalc_temp_table]
END;
GO

2.C#中调用存储过程

 SqlParameter dmgPara1 = new SqlParameter("@bdindexId", SqlDbType.Int, );
dmgPara1.Value = pciCalcRcd.BdindexId;
SqlParameter dmgPara2 = new SqlParameter("@groupId", SqlDbType.Int, );
dmgPara2.Value = pciCalcRcd.GroupId;
SqlParameter dmgPara3 = new SqlParameter("@disVal", SqlDbType.Int, );
dmgPara3.Value = pciCalcRcd.DisVal;
SqlParameter dmgPara4 = new SqlParameter("@retVal", SqlDbType.Int, );
dmgPara4.Value = ;
dmgPara4.Direction = ParameterDirection.Output;//输出参数
SqlParameter dmgPara5 = new SqlParameter("@routeType", SqlDbType.Int, );
dmgPara5.Value = routeTypeVal;//道路等级,高速与一级公路为0,二三四级为1
SqlParameter[] sqlDmgParam = new SqlParameter[];
sqlDmgParam[] = dmgPara1;
sqlDmgParam[] = dmgPara2;
sqlDmgParam[] = dmgPara3;
sqlDmgParam[] = dmgPara4;
sqlDmgParam[] = dmgPara5;
// 根据病害,入库相应的路面破损数据
try
{
nRet = MsSqlTool.executeProcedureNoDataSet(conn, "sp_calcPci_of_baseRcd_GTmpTbl", sqlDmgParam);
}
catch (Exception ex)
{
}
if (int.Parse(sqlDmgParam[].Value.ToString()) <= )
{
return int.Parse(sqlDmgParam[].Value.ToString());//获取输出参数返回值
}
 public static int executeProcedureNoDataSet(SqlConnection dbConn, string strProcName, SqlParameter[] procParams)
{
SqlConnection conn = dbConn;
DataSet ds = new DataSet();
try
{
if (conn.State != ConnectionState.Open)
conn.Open(); // 确认打开连接  Open();  
SqlCommand cmd = new SqlCommand(strProcName, dbConn);  
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandTimeout = ;
// 依次把参数传入存储过程 
if (procParams != null)  
{  
foreach (SqlParameter parameter in procParams)  
cmd.Parameters.Add(parameter);  
}    cmd.ExecuteNonQuery(); return ;
}
catch (System.Exception ex)
{
throw ex;
}
finally
{
conn.Close();
}
return ;
}

3.SQL 调试存储过程

C#中执行存储过程并在SQL server中调试的更多相关文章

  1. 在SQL Server数据库中执行存储过程很快,在c#中调用很慢的问题

    记录工作中遇到的问题,分享出来: 原博客地址:https://blog.csdn.net/weixin_40782680/article/details/85038281 今天遇到一个比较郁闷的问题, ...

  2. C#中 将图片保存到Sql server 中

    private void Form1_Load(object sender, EventArgs e) { #region 保存数据库 string url = @"C:\Users\Adm ...

  3. 理解性能的奥秘——应用程序中慢,SSMS中快(2)——SQL Server如何编译存储过程

    本文属于<理解性能的奥秘--应用程序中慢,SSMS中快>系列 接上文:理解性能的奥秘--应用程序中慢,SSMS中快(1)--简介 本文介绍SQL Server如何编译存储过程并使用计划缓存 ...

  4. SQL Server中关于跟踪(Trace)那点事

    前言 一提到跟踪俩字,很多人想到警匪片中的场景,同样在我们的SQL Server数据库中“跟踪”也是无处不在的,如果我们利用好了跟踪技巧,就可以针对某些特定的场景做定向分析,找出充足的证据来破案. 简 ...

  5. 【转】SQL Server中关于跟踪(Trace)那点事

    前言 一提到跟踪俩字,很多人想到警匪片中的场景,同样在我们的SQL Server数据库中“跟踪”也是无处不在的,如果我们利用好了跟踪技巧,就可以针对某些特定的场景做定向分析,找出充足的证据来破案. 简 ...

  6. SQL Server中关于跟踪(Trace)那点事(转载)

    前言 一提到跟踪俩字,很多人想到警匪片中的场景,同样在我们的SQL Server数据库中“跟踪”也是无处不在的,如果我们利用好了跟踪技巧,就可以针对某些特定的场景做定向分析,找出充足的证据来破案. 简 ...

  7. 【转贴】SQL Server中关于跟踪(Trace)那点事

    SQL Server中关于跟踪(Trace)那点事 https://www.cnblogs.com/zhijianliutang/p/4113911.html 作者很牛B.. 前言 一提到跟踪俩字,很 ...

  8. SQL Server 中的 ACID 属性

    SQL Server 中的事务是什么? SQL Server 中的事务是一组被视为一个单元的 SQL 语句,它们按照"做所有事或不做任何事"的原则执行,成功的事务必须通过 ACID ...

  9. [转]细说SQL Server中的加密

    简介 加密是指通过使用密钥或密码对数据进行模糊处理的过程.在SQL Server中,加密并不能替代其他的安全设置,比如防止未被授权的人访问数据库或是数据库实例所在的Windows系统,甚至是数据库所在 ...

随机推荐

  1. Shiro自定义realm实现密码验证及登录、密码加密注册、修改密码的验证

    一:先从登录开始,直接看代码 @RequestMapping(value="dologin",method = {RequestMethod.GET, RequestMethod. ...

  2. Java解决跨域的方案

    在后台加上,在数据返回之前添加 response.setHeader("Access-Control-Allow-Origin","*"); 就可以了,前台不用 ...

  3. poj 2546(两圆公共面积)

    Circular Area Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 5682   Accepted: 2225 Des ...

  4. VS2008中的配置文件app.config简单小结

    应用程序的配置文件用于读取和保存简单的本地数据,vs中新增配置文件可以直接在项目的”属性“-”设置“里添加,添加后在项目的Properties文件夹会多出一组两个文件:Settings.setting ...

  5. Codeforces Beta Round #4 (Div. 2 Only) C. Registration system【裸hash/map】

    C. Registration system time limit per test 5 seconds memory limit per test 64 megabytes input standa ...

  6. Codeforces Round #447 (Div. 2) A. QAQ【三重暴力枚举】

    A. QAQ time limit per test 1 second memory limit per test 256 megabytes input standard input output ...

  7. 每天一个liunx命令4之 ps -ef ,ps -aux ,ps aux

    1ps aux和ps –aux 请注意"ps -aux"不同于"ps aux".POSIX和UNIX的标准要求"ps -aux"打印用户名为 ...

  8. 利用.net4.0的dynamic特性制造的超级简单的微信SDK

    1.基础支持API /*-------------------------------------------------------------------------- * BasicAPI.cs ...

  9. UVa 407

    此问题与求上升序列最大和类似,可以作为DAG模型计算.将每一快砖分解为3块,将所有砖块按照底排序,注意sort排序中涉及到底的两个参数x,y,这时候一定要有优先排,比如先排x再排y,不能同时排x和y, ...

  10. scala,import test._ ; import test.{ClassA,ClassB}

    在scala中,*不是通配符,下斜杠“_”才是通配符.因此当使用某个package所有的类时,直接使用:import test._:使用某几个时,直接使用:import test.{ClassA,Cl ...