.Net 调用存储过程取到return的返回值

1. 存储过程

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
alter PROCEDURE GetOrderLine
@orderId varchar(50)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON; 

select * from orderLine where OrderId = @orderId; 

return 123;
END
GO

注意 存储过程只能返回 int 类型,如果返回一个字符串 ,将会报类型转化错误

2 后台调用

DataTable dt = new DataTable();
string connStr = System.Configuration.ConfigurationManager.ConnectionStrings["BLL.Properties.Settings.ShoppingDBConnectionString"].ToString();
using(SqlConnection conn= new SqlConnection(connStr)){
string callName = "GetOrderLine";
using (SqlCommand command = new SqlCommand(callName, conn))
{
command.CommandType = CommandType.StoredProcedure;
SqlParameter[] sps = { new SqlParameter("@orderId",SqlDbType.VarChar,50) ,
new SqlParameter("@return",SqlDbType.Int) //注册返回值类型
}; 

sps[0].Value = "43c7cf15-6b2f-4d18-92b2-dbe827f30dfc";
sps[1].Direction = ParameterDirection.ReturnValue; //返回参数类型 

command.Parameters.AddRange(sps);
using(SqlDataAdapter sda =new SqlDataAdapter()){
sda.SelectCommand = command;
sda.Fill(dt);
//Console.WriteLine(sda.GetFillParameters()[1].Value);
Console.WriteLine(sps[1].Value); //取到返回的值
} 

}
} 

if(dt.Rows.Count>0){
for (int i = 0; i < dt.Rows.Count;i++ )
{
Console.WriteLine(dt.Rows[i]["ProductId"]+":"+dt.Rows[i]["ProductPrice"]+":"+dt.Rows[i]["ProductCount"]);
}
}
Console.ReadLine();
(0)

相关推荐

  • .Net 调用存储过程取到return的返回值

    1. 存储过程 SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: <Author,,Name> -- Create date: <Create Date,,> -- Description: <Description,,> -- ======================================

  • 存储过程的输出参数,返回值与结果集

    每个存储过程都有默认的返回值,默认值为0.下面我们分别看看在management studio中如何查看输出参数,返回值以及结果集,然后我们再在ASP.NET调用存储过程中如何获得输出参数,返回值以及结果集. 首先:在sql server management studio中查看输出参数,返回值以及结果集.本示例以Northwind数据库为例. 复制代码 代码如下: create proc Employee @Rowcount int=0 output as begin SELECT * FRO

  • python中return不返回值的问题解析

    python中return不返回值是因为你没有将返回的值取出来. 解决方法: 调用函数,将函数的返回值赋给一个变量,输出这个变量就可以看到函数的返回值了 示例如下: def ss():     a = 10     b = 20     return a + b c = ss() print(c) 执行结果如下: 知识点扩展: return语句: return语句用来从一个函数 返回 即跳出函数.我们也可选从函数 返回一个值 . 使用字面意义上的语句 #!/usr/bin/python # Fi

  • C#调用Python程序传参数获得返回值

    目录 说明 1. Python 脚本 2. 打包成Windows可执行文件 3. C# 程序 4. 参考 说明 C# 调用 Python 程序有多种方式,本篇用的是第 4 种: nuget的ironPython: 用 c/c++ 调用python,再封装成库文件,c# 调用: c# 命令行调用.py文件执行: python 程序制作成 .exe 可执行文件,c# 使用命令行进行传参取返回值. 1. Python 脚本 先建个测试脚本 d://Test/EchoHi.py 代码如下: import

  • shell函数内调用另一个函数(不带返回值和带返回值)

    目录 一.函数B调用不带返回值的函数A 二.函数B调用带返回值的函数A,并接收函数A的返回值进行输出 一.函数B调用不带返回值的函数A 新建文件,命名为 test.sh,添加如下代码: #!/bin/bash # 即将被调用的函数A function A(){ a="aaa" echo $a } # 函数B,直接调用A function B(){ A echo "bbb" } B 命令行中通过sh test.sh执行结果: 二.函数B调用带返回值的函数A,并接收函数

  • SQL SERVER使用ODBC 驱动建立的链接服务器调用存储过程时参数不能为NULL值

    我们知道SQL SERVER建立链接服务器(Linked Server)可以选择的驱动程序非常多,最近发现使用ODBC 的 Microsoft OLE DB 驱动程序建立的链接服务器(Linked Server), 调用存储过程过程时,参数不能为NULL值. 否则就会报下面错误提示: 对应的英文错误提示为: EXEC xxx.xxx.dbo.Usp_Test NULL,NULL,'ALL' Msg 7213, Level 16, State 1, Line 1 The attempt by th

  • C#调用Rar文件及获取Rar返回值的方法

    本文实例讲述了C#调用Rar文件及获取Rar返回值的方法.分享给大家供大家参考.具体如下: 该程序适用于C#调用. 所需的Rar.exe可从WinRar官网下载控制台版. 按钮OK点击事件: System.Diagnostics.Process process; private void btnRAR_Click(object sender, EventArgs e) { if (System.IO.File.Exists("Rar.exe")) { try { process = n

  • Python中return函数返回值实例用法

    在学习return函数时候,还是要知道了解它最主要的函数作用,比如,怎么去实现返回一个值,另外还有就是我们经常会用到的使用return能够进行多值输出,这才是我们需要抓住知识的重点,针对上述所提及的内容,都可以来往下看文章,答案都在文章内容获取哦~ return 添加返回值 return 显示返回对象 返回值接受:value = func() 例子:计算学成最高分 listv = [90,80,88,77,66] # 分数计算return高分 def scoreCalculate(values)

  • jquery ajax return没有返回值的解决方法

    大家先看一段简单的jquery ajax 返回值的js 复制代码 代码如下: function getReturnAjax{ $.ajax({ type:"POST", url:"ajax/userexist.aspx", data:"username="+vusername.value, success:function(msg){ if(msg=="ok"){ showtipex(vusername.id,"&l

  • sqlserver 存储过程带事务 拼接id 返回值

    删除一条留言信息会级联删除回复信息,这时我们需要用到事务,如下SQL 复制代码 代码如下: ALTER PROCEDURE [dbo].[proc_tb_leaveword_delete] (      @leavewordID INT,     @record TINYINT OUTPUT )     AS BEGIN     BEGIN TRY         BEGIN TRANSACTION             DELETE FROM tb_leavewordID WHERE lea

随机推荐