小编jam*_*s33的帖子

C# 从存储过程获取返回值不起作用

我正在尝试运行一个返回单个整数值的存储过程,但我不知道哪里出了问题。从我读过的内容来看,以下应该有效,但不是,我看不出哪里出错了。

这是我的存储过程:

    ALTER PROCEDURE [dbo].[getDDNTempID]
    AS
    BEGIN
        declare @tempID int

        select top 1 @tempID = tempID from tblDDNHdr order by tempID asc
        if @tempID is null
            return 0
        else
            return @tempID
    END
Run Code Online (Sandbox Code Playgroud)

这是我尝试获取返回值的代码:

        using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["test"].ConnectionString))
        {
            SqlCommand cmd = new SqlCommand("getDDNTempID", conn);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Connection.Open();
            Int32 tempID = (Int32)cmd.ExecuteScalar();
            if (tempID == 0) { tempID = -1; }
            return tempID;
        }
Run Code Online (Sandbox Code Playgroud)

当这个过程被调用时,我得到一个 NullReferenceException 并且给出错误的行是:

            Int32 tempID = (Int32)cmd.ExecuteScalar();
Run Code Online (Sandbox Code Playgroud)

我将不胜感激你们能给的任何指导。

谢谢

c# sql-server stored-procedures

5
推荐指数
1
解决办法
4497
查看次数

标签 统计

c# ×1

sql-server ×1

stored-procedures ×1