如何从代码隐藏运行存储过程(带参数 - 有返回值)?

2024-05-19

如何使用存储过程(带参数 - 具有类型的返回值int)从代码后面?

我的存储过程如下所示:

ALTER Procedure [dbo].[sp_Noskheh_SumOfTotalPay]
    @Co_ID int
AS
-----------------
Declare @Sum bigint
-----------------
BEGIN
    SELECT
       @Sum = SUM(TotalPay)
    FROM Noskheh
    WHERE
       (Co_ID = @Co_ID)

    RETURN @Sum
END

我想用@Sum在代码后面...

您能告诉我一种方法吗?

提前致谢

此致


你需要设置一个SqlConnection and a SqlCommand。如果您的代码是RETURN @Sum最后语句,你需要这样做(定义一个RETURN_VALUE类型的参数):

using(SqlConnection _conn = new SqlConnection(-your-connection-string-here))
using(SqlCommand _cmd = new SqlCommand("dbo.sp_Noskheh_SumOfTotalPay", _conn))
{  
   _cmd.CommandType = CommandType.StoredProcedure;

   _cmd.Parameters.Add(new SqlParameter("@CO_ID", SqlDbType.Int));
   _cmd.Parameters["@CO_ID"].Value = 5; // whatever value you want

   _cmd.Parameters.Add(new SqlParameter("@RETURN_VALUE", SqlDbType.BigInt));
   _cmd.Parameters["@RETURN_VALUE"].Direction = ParameterDirection.ReturnValue; 

   _conn.Open();
   _cmd.ExecuteNonQuery();

   Int64 result = Int64.Parse(_cmd.Parameters["@RETURN_VALUE"].Value);

   _conn.Close();
}

如果用简单的 SELECT 替换 RETURN 语句会容易得多:

SELECT @Sum

在这种情况下,您可以使用我之前的简化版本 - 使用.ExecuteScalar()检索从存储过程返回的单行的单个值:

using(SqlConnection _conn = new SqlConnection(-your-connection-string-here))
using(SqlCommand _cmd = new SqlCommand("dbo.sp_Noskheh_SumOfTotalPay", _conn))
{  
   _cmd.CommandType = CommandType.StoredProcedure;

   _cmd.Parameters.Add(new SqlParameter("@CO_ID", SqlDbType.Int));
   _cmd.Parameters["@CO_ID"].Value = 5; // whatever value you want

   _conn.Open();
   object result = _cmd.ExecuteScalar();
   _conn.Close();

   Int64 sum = Int64.Parse(result);
}

这应该调用您的存储过程,读取您返回的单个值,并将其转换为int变量称为sum.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从代码隐藏运行存储过程(带参数 - 有返回值)? 的相关文章

  • 调用 McAfee 病毒扫描引擎

    我收到客户的请求 要求使用他们服务器上的 McAfee 病毒扫描将病毒扫描集成到应用程序中 我做了一些调查 发现 McScan32 dll 是主要的扫描引擎 它导出各种看起来有用的函数 我还发现提到了 McAfee Scan Engine
  • STL 迭代器:前缀增量更快? [复制]

    这个问题在这里已经有答案了 可能的重复 C 中的预增量比后增量快 正确吗 如果是 为什么呢 https stackoverflow com questions 2020184 preincrement faster than postinc
  • 在 xaml 中编写嵌套类型时出现设计时错误

    我创建了一个用户控件 它接受枚举类型并将该枚举的值分配给该用户控件中的 ComboBox 控件 很简单 我在数据模板中使用此用户控件 当出现嵌套类型时 问题就来了 我使用这个符号来指定 EnumType x Type myNamespace
  • C# 异步等待澄清?

    我读了here http blog stephencleary com 2012 02 async and await html that 等待检查等待的看看它是否有already完全的 如果 可等待已经完成 那么该方法将继续 运行 同步
  • 没有特殊字符的密码验证器

    我是 RegEx 的新手 已经进行了大量搜索 但没有找到任何具体内容 我正在编写一个验证密码字符串的正则表达式 可接受的字符串必须至少具有 4 种字符类型中的 3 种 数字 小写字母 大写字母 特殊字符 我对包含有一个想法 也就是说 如果这
  • 如何在 Cassandra 中存储无符号整数?

    我通过 Datastax 驱动程序在 Cassandra 中存储一些数据 并且需要存储无符号 16 位和 32 位整数 对于无符号 16 位整数 我可以轻松地将它们存储为有符号 32 位整数 并根据需要进行转换 然而 对于无符号 64 位整
  • std::list 线程push_back、front、pop_front

    std list 线程安全吗 我假设不是这样 所以我添加了自己的同步机制 我认为我有正确的术语 但我仍然遇到问题 每个函数都由单独的线程调用 Thread1 不能等待 它必须尽可能快 std list
  • 从经典 ASP 调用 .Net C# DLL 方法

    我正在开发一个经典的 asp 项目 该项目需要将字符串发送到 DLL DLL 会将其序列化并发送到 Zebra 热敏打印机 我已经构建了我的 DLL 并使用它注册了regasm其次是 代码库这使得 IIS 能够识别它 虽然我可以设置我的对象
  • 无限循环与无限递归。两者都是未定义的吗?

    无副作用的无限循环是未定义的行为 看here https coliru stacked crooked com view id 24e0a58778f67cd4举个例子参考参数 https en cppreference com w cpp
  • C++ 多行字符串原始文字[重复]

    这个问题在这里已经有答案了 我们可以像这样定义一个多行字符串 const char text1 part 1 part 2 part 3 part 4 const char text2 part 1 part 2 part 3 part 4
  • 方程“a + bx = c + dy”的积分解

    在等式中a bx c dy 所有变量都是整数 a b c and d是已知的 我如何找到整体解决方案x and y 如果我的想法是正确的 将会有无限多个解 由最小公倍数分隔b and d 但我只需要一个解决方案 我可以计算其余的 这是一个例
  • 人脸 API DetectAsync 错误

    我想创建一个简单的程序来使用 Microsoft Azure Face API 和 Visual Studio 2015 检测人脸 遵循 https social technet microsoft com wiki contents ar
  • 了解 SSMS 2008 中关系的更新和删除规则

    当我们定义外键约束时 我对 SQL Server 2008 Management Studio 中的更新和删除规则的含义感到困惑 我也没有找到相关的帮助文档 例如F1帮助 这是屏幕快照 如果有人能描述它们的含义并推荐一些相关文档来阅读 我将
  • 两个静态变量同名(两个不同的文件),并在任何其他文件中 extern 其中一个

    在一个文件中将变量声明为 static 并在另一个文件中进行 extern 声明 我认为这会在链接时出现错误 因为 extern 变量不会在任何对象中看到 因为在其他文件中声明的变量带有限定符 static 但不知何故 链接器 瑞萨 没有显
  • LINQ:使用 INNER JOIN、Group 和 SUM

    我正在尝试使用 LINQ 执行以下 SQL 最接近的是执行交叉联接和总和计算 我知道必须有更好的方法来编写它 所以我向堆栈团队寻求帮助 SELECT T1 Column1 T1 Column2 SUM T3 Column1 AS Amoun
  • 编译时展开 for 循环内的模板参数?

    维基百科 here http en wikipedia org wiki Template metaprogramming Compile time code optimization 给出了 for 循环的编译时展开 我想知道我们是否可以
  • C++ 继承的内存布局

    如果我有两个类 一个类继承另一个类 并且子类仅包含函数 那么这两个类的内存布局是否相同 e g class Base int a b c class Derived public Base only functions 我读过编译器无法对数
  • 指针和内存范围

    我已经用 C 语言编程有一段时间了 但对 C 语言还是很陌生 有时我对 C 处理内存的方式感到困惑 考虑以下有效的 C 代码片段 const char string void where is this pointer variable l
  • 现代编译器是否优化乘以 1 和 -1

    如果我写 template
  • 从 mvc 控制器使用 Web api 控制器操作

    我有两个控制器 一个mvc控制器和一个api控制器 它们都在同一个项目中 HomeController Controller DataController ApiController 如果我想从 HomeController 中使用 Dat

随机推荐

  • WCF服务通过IIS与第三方dll连接

    我正在使用 Windows 7 VS2010 SqlServer 2008 我的应用程序从第三方 dll 获取数据 它从必须在后台运行的另一个进程获取数据 并处理数据 然后通过 WCF 服务将其发送到前端 应用程序已完成并执行其应该执行的操
  • 对于实时网站使用 Node.js 或 Ringojs 安全吗?

    正如标题中所述 我想知道使用实际的 omg 平台 即 Node js 和 Ringo js 的实际版本 之一来开发网站是否安全 另外 我想知道他们是否支持cookie sessions以及他们如何处理多字段帖子 PHP中的fieldname
  • 使用 UISearchBar 过滤数组

    我目前正在使用以下代码来过滤数组并将结果显示在我的 tableView 中 问题是 只有当搜索与确切的单词匹配时 才会返回结果 如何更改数组过滤器以在输入时搜索每个字符 let data Mango Grape Berry Orange A
  • Pyaudio 安装错误 - “命令‘gcc’失败,退出状态 1”

    我正在运行 Ubuntu 11 04 Python 2 7 1 并想安装 Pyaudio 于是我跑了 sudo easy install pyaudio 在终端中 进程退出并显示以下错误消息 Searching for pyaudio Re
  • 页面中某些超链接控件上的本地化资源未发生变化

    上面是正在开发中的网站的屏幕截图 我们有一个 DropdownList 控件 并在其 SelectedIndexChanged 上进行回发 然后我们更改站点区域性 然后加载相应的资源文件 DropDownList ASP NET 代码
  • java.library.path 中没有 dhtreader

    我尝试让这个专家projekt https bitbucket org Temdegon greenhouse在 Raspberry Pi 3 上运行 但 DHT11 传感器给出以下错误 sudo java classpath classe
  • href 中的 Mono ASP.NET MVC 波形符导致 System.NotImplementedException

    我正在尝试在 Ubuntu 14 04 1 上使用 Mono 3 12 0 制作 ASP NET 应用程序 每当我尝试在我的 href 中使用波浪号时 Layout cshtml 我得到一个System NotImplementedExce
  • WPF画布性能-children.add调用多次

    我在长画布上绘制了很多线条 想想条形图 并对其性能进行了相当好的调整 使用低级几何类并冻结它们等 这极大地提高了性能 但仍然需要几秒钟将几千个项目加载到画布中 我对应用程序进行了性能分析 看起来每次调用都花费了很大一部分时间canvas c
  • 垃圾邮件打败了我所有的验证码

    我有一个 WordPress 博客 我在上面使用验证码插件的时间最长 因为它有效 最近我收到了大量的垃圾邮件 然后我尝试执行通过 PHP 生成的 将这些随机数添加在一起 但仍然没有成功 我不太确定需要做什么来阻止这些垃圾邮件 但这很烦人 我
  • 如何在没有管理员权限的情况下在 VS Code(Windows) 中使用自定义字体来安装字体?

    我在我的工作电脑 Windows 7 上没有管理员权限 所以我无法将自定义字体 Fira Code 安装到我的系统中 有没有办法在 VS Code 中不安装就可以使用这种字体 为这个问题找到一个丑陋的解决方法 使用 webfont 打开菜单
  • 调用基本方法而不是覆盖方法

    在 C 中 类A包含一个公共方法Foo 它进行一些处理并返回一个值 protected method Bar 也在课堂上A执行与以下相同的逻辑Foo 然后进行一些额外的处理 然后返回一个值 为了避免重复代码 Bar calls Foo 并使
  • 将bitbucket发布到数字海洋

    我本质上是试图使用 bitbucket 来理解 git 的概念 我一直在通过修改本地帐户和 bitbucket 帐户之间的文件来练习版本控制 事实证明这很有帮助 现在我正在尝试弄清楚如何将文件从 bitbucket 或者我猜是 GitHub
  • 检测对项目外部 RecyclerView 的点击

    我有一个 RecyclerView 其中有 2 个项目没有填满整个屏幕 如何检测用户单击了 RecyclerView 的空白部分 意味着直接单击了 RecyclerView 而不是其项目之一 正如评论中提到的 mRecyclerView a
  • 调用线程无法访问该对象,因为另一个线程拥有它

    我已经阅读了很多关于此错误的帖子 但我不明白如何在我的解决方案中解决它 我有一个进度条对话框 其中包含一些逻辑 通过按钮单击从 MainFrame 调用 void OnBtnClick object sender RoutedEventAr
  • Spring Cloud Streams无法自动装配Source.class

    我正在从头开始学习 Spring Cloud Streams 我尝试创建一个像这样的源应用程序 import org springframework cloud stream messaging Source etc RestControl
  • 如何在 C# 中将 ListView 与目录和文件绑定

    我想在 C 的 ListView 中绑定 C 驱动器中的所有目录和文件 我的代码是 protected void Page Load object sender EventArgs e DirectoryInfo di new Direct
  • SQL Server 行锁

    如何在 SQL Server 2005 中进行行锁定 我执行一条 sql 进行行锁定 即 SELECT FROM authors WITH HOLDLOCK ROWLOCK WHERE au id 274 80 9391 它工作正常 但在这
  • 如何将自己的js文件导入到vite中?

    我将 Laravel 与 Vite 结合使用 我想使用 Vanilla JS 代码添加文件 在我使用mix之前 我从来没有使用过Vite 我尝试将此代码添加到文件 vite config js 中 如下例所示 laravel input r
  • Haskell:不在范围内:数据构造函数

    今天开始在学校学习 haskell 我遇到了函数问题 我不明白为什么它不在范围内 代码如下 ff Char gt Char gt Char ff A B x 0 y 1 x lt A y lt B x 1 y 0 和错误 md31 hs 2
  • 如何从代码隐藏运行存储过程(带参数 - 有返回值)?

    如何使用存储过程 带参数 具有类型的返回值int 从代码后面 我的存储过程如下所示 ALTER Procedure dbo sp Noskheh SumOfTotalPay Co ID int AS Declare Sum bigint B