C#中执行存储过程并在SQL server中调试
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中调试的更多相关文章
- 在SQL Server数据库中执行存储过程很快,在c#中调用很慢的问题
记录工作中遇到的问题,分享出来: 原博客地址:https://blog.csdn.net/weixin_40782680/article/details/85038281 今天遇到一个比较郁闷的问题, ...
- C#中 将图片保存到Sql server 中
private void Form1_Load(object sender, EventArgs e) { #region 保存数据库 string url = @"C:\Users\Adm ...
- 理解性能的奥秘——应用程序中慢,SSMS中快(2)——SQL Server如何编译存储过程
本文属于<理解性能的奥秘--应用程序中慢,SSMS中快>系列 接上文:理解性能的奥秘--应用程序中慢,SSMS中快(1)--简介 本文介绍SQL Server如何编译存储过程并使用计划缓存 ...
- SQL Server中关于跟踪(Trace)那点事
前言 一提到跟踪俩字,很多人想到警匪片中的场景,同样在我们的SQL Server数据库中“跟踪”也是无处不在的,如果我们利用好了跟踪技巧,就可以针对某些特定的场景做定向分析,找出充足的证据来破案. 简 ...
- 【转】SQL Server中关于跟踪(Trace)那点事
前言 一提到跟踪俩字,很多人想到警匪片中的场景,同样在我们的SQL Server数据库中“跟踪”也是无处不在的,如果我们利用好了跟踪技巧,就可以针对某些特定的场景做定向分析,找出充足的证据来破案. 简 ...
- SQL Server中关于跟踪(Trace)那点事(转载)
前言 一提到跟踪俩字,很多人想到警匪片中的场景,同样在我们的SQL Server数据库中“跟踪”也是无处不在的,如果我们利用好了跟踪技巧,就可以针对某些特定的场景做定向分析,找出充足的证据来破案. 简 ...
- 【转贴】SQL Server中关于跟踪(Trace)那点事
SQL Server中关于跟踪(Trace)那点事 https://www.cnblogs.com/zhijianliutang/p/4113911.html 作者很牛B.. 前言 一提到跟踪俩字,很 ...
- SQL Server 中的 ACID 属性
SQL Server 中的事务是什么? SQL Server 中的事务是一组被视为一个单元的 SQL 语句,它们按照"做所有事或不做任何事"的原则执行,成功的事务必须通过 ACID ...
- [转]细说SQL Server中的加密
简介 加密是指通过使用密钥或密码对数据进行模糊处理的过程.在SQL Server中,加密并不能替代其他的安全设置,比如防止未被授权的人访问数据库或是数据库实例所在的Windows系统,甚至是数据库所在 ...
随机推荐
- 解决svn 异常:svn: E155027: Tree conflict can only be resolved to working state; {0} not resolved
以前很少使用svn进行代码管理,时间长了之后也忘得差不多了,但现在公司使用的是svn进行版本管理,使用过程中出现了问题,顺带记一下. 异常情况:切换svn地址之后,发现项目代码无法合并代码,也无法提交 ...
- 【linux高级程序设计】(第十四章)TCP高级应用 3
控制socket文件描述符属性 1.set/getsockopt()修改socket属性 int getsockopt (int __fd, int __level, int __optname, v ...
- input框监控输入内容
$(".input").bind("input porpertychange",function(){ console.log($(".input&q ...
- 2018 CCPC 湘潭邀请赛 & 2018 JSCPC
Problem A Problem B Problem C 这题用主席树轻松解决 可以二分答案,每次查询:也可以直接开个全局变量在主席树上二分: 时间复杂度$O(nlog^{2}n)$或$O(nlog ...
- UAF学习之Adobe reader CVE-2013-3346
学习了UAF,分析了几个漏洞,同时,也熟悉了windbg的用法,收获挺大. 基本的UAF分析流程如下: i:找有漏洞的函数 ii:找到被释放对象的类型,以及被释放对象在内存中的位置 iii:理解对象的 ...
- Spring Boot中使用Feign调用时Hystrix提示异常:"could not be queued for execution and no fallback available."以及"Rejected command because thread-pool queueSize is at rejection threshold"
说明: 1.我还没有真正理解Spring Cloud的精髓,现只停留在使用阶段,可能存在分析不到位的问题. 1.这个是由于线程池的最大数量导致的,官方说随着线程池的数量越大,资源开销也就越大,所以调整 ...
- Orchard EventBus 事件总线及 IEventHandler作用
事件总线接口定义: public interface IEventBus : IDependency { IEnumerable Notify(string messageName, IDiction ...
- ubuntu10.10编译TQ2440的x86-qtopia-2.2.0具体问题总结及原因分析
转: http://blog.csdn.net/zyxlinux888/article/details/6705481 http://www.cnblogs.com/liu_xf/archive/20 ...
- ios学习流水账1
1.UIImageview设边框.圆角 需要引QuartzCore/QuartzCore.h> //设UIImageView边框 CALayer *layer = [m_imgView laye ...
- 可以使用foreach遍历循环的条件
大话C#中能使用foreach的集合的实现 转自:http://www.cnblogs.com/tangzhengyue/p/3339936.html 大家都知道foreach的语法: forea ...