当前位置:编程学习 > C#/ASP.NET >>

c# 如何获得存储过程返回值,帮我看看哪里不对。谢谢

写了个程序,就是死活得不到返回值,各位帮忙看下哪里出了错。
存储过程如下:

CREATE PROCEDURE P_test3

AS
BEGIN
return 800
END
GO

程序如下,调用DataAccess

public int Return_int(int a)
        {
            SqlParameter[] parms = new SqlParameter[1];
            parms[0] = new SqlParameter("returns", SqlDbType.Int);
            parms[0].Direction = ParameterDirection.ReturnValue;

            if (DataAccess.ExecuteProcedure(@"P_test3", parms, @"Planet"))
            {
                int bb = Convert.ToInt32(parms[0].Value);
                return bb;
            }
            else
            {
                return 0;
            }
        }
--------------------编程问答-------------------- 存储过程都没有参数,瞎 往里面写参数
连调试都没有就知道发帖子, --------------------编程问答-------------------- 有参数也是过了,就是不行,没参数用这个

    private int r()
    {
        string conn = @"uid=sa;pwd=sa;server=.;database=Plant";
        SqlConnection sqlconn = new SqlConnection(conn);
        SqlCommand cmd = new SqlCommand();
        cmd.Connection = sqlconn;
        cmd.CommandText = "P_test3";
        cmd.CommandType = CommandType.StoredProcedure;
        // 创建参数
        IDataParameter[] parameters = {
                new SqlParameter("rval", SqlDbType.Int,4)
            };
        // 将参数类型设置为 返回值类型
        parameters[0].Direction = ParameterDirection.ReturnValue;
        // 添加参数
        cmd.Parameters.Add(parameters[0]);

        sqlconn.Open();
        // 执行存储过程并返回影响的行数
        cmd.ExecuteNonQuery();
        sqlconn.Close();
        // 显示影响的行数和返回值
        return Convert.ToInt32(parameters[0].Value);
    }

也能得到返回值,关键是用DataAccess后就不行,为什么? --------------------编程问答-------------------- 汗啊!!!! --------------------编程问答--------------------
引用 1 楼 freeboy827 的回复:
存储过程都没有参数,瞎 往里面写参数 
连调试都没有就知道发帖子,

我存储过程没错,是没参数,程序里的参数是返回值类型!不知你说我错在哪? --------------------编程问答-------------------- IDataParameter[] parameters = {
                new SqlParameter("rval", SqlDbType.Int,4)
            };
        这个不是参数是什么,你把参数和返回值搞昏了 --------------------编程问答--------------------
引用 5 楼 lude8880 的回复:
IDataParameter[] parameters = { 
                new SqlParameter("rval", SqlDbType.Int,4) 
            }; 
        这个不是参数是什么,你把参数和返回值搞昏了

大哥,你可以试试。那个是返回值。 --------------------编程问答-------------------- SQLHELPER能用,但DATAACCESS不行,是不是DataAccess有限制? --------------------编程问答-------------------- 存储过程没有参数
程序里就能传参数了??
--------------------编程问答-------------------- CREATE PROCEDURE P_test3

@参数1,
@参数2

AS
BEGIN
    return 800
END
GO
--------------------编程问答-------------------- 你用返回首行首列的方法不就得到值了
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,