c# - 如何在 C# 中获取存储过程的返回值?

标签 c# sql-server-2005 stored-procedures ado.net

我有一个存储过程,它执行一些操作并返回 1 或 0,如下所示

CREATE PROCEDURE dbo.UserCheckUsername11
(
    @Username nvarchar(50)
)
AS
BEGIN
SET NOCOUNT ON;

IF Exists(SELECT UserID FROM User WHERE username =@Username) 
    return 1
ELSE
    return 0
END

在 C# 中我想得到这个返回值我尝试 ExcuteScalar 但它没有返回任何值(我知道如果我用 替换 return 0 Select 0 ExcuteScalar 将捕获它.. 但是否有任何方法可以让我通过将 return 替换为 select 来获取返回值?

注意:我也不想用户存储过程输出参数

最佳答案

本质上,您必须定义一个带有“方向”返回值的参数。

您可以在这里找到一些示例:Using ADO.NET with SQL Server在这里:Get the Return Value from an SQL Stored Procedure .

这是引用的第一个链接的相关部分:

To get the value of a RETURN statement, you need to do the following:

// add a new parameter, with any name we want - its for our own
// use only
SqlParameter sqlParam = com.Parameters.Add("@ReturnValue", SqlDbType.Int);
// set the direction flag so that it will be filled with the return value
myParm.Direction = ParameterDirection.ReturnValue;

Then, after the stored procedure has been executed,

int returnValue = (int)com.Parameters["@ReturnValue"].Value

will retrieve the value that was set.

关于c# - 如何在 C# 中获取存储过程的返回值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3123187/

相关文章:

c# - 如何使用 Ajax 在 Asp.net Core MVC 中刷新数据而不重新加载页面?

sql-server - 如何使用 SSIS 导入可变记录长度 CSV 文件?

mysql View 与存储过程

mysql - 使用游标或多次调用存储过程哪个更好

c# - 将 DataAnnotations 添加到自动生成的 DBML 类? MVC 2.0 ASP.NET

c# - 多头的按位运算

c# - .NET:是否有单击并拖动 "Desktop-Like"控件?

sql - SYS.DM_TRAN_LOCKS 表 RESOURCE_ASSOCIATED_ENTITY_ID 列中的奇怪值

sql-server-2005 - 如何在 T-SQL 中选择一个数据库中的数据,并使用它在另一个数据库中插入行?

php - 在数据库中存储 SQL 语句