zoukankan      html  css  js  c++  java
  • 使用EF框架调用带有输出参数(output)的存储过程

    使用的数据库:SqlServer2012

    IDE:VS 2017

    EF框架版本:6.4.0

    存储过程

    CREATE PROCEDURE p_test 
        @id int,@returnText nvarchar(Max) output
    AS
    BEGIN
        DECLARE @name nvarchar(20)
        select @name= Name from [dbo].[party_member] where ID=@id
        set @returnText='姓名:'+@name
    END
    GO

    调用代码(C#)

    public string getText(int id)
            {
                List<SqlParameter> paramArray = new List<SqlParameter>();
                paramArray.Add(new SqlParameter("@id", id));
    
                SqlParameter p = new SqlParameter("@returnText", SqlDbType.NVarChar,30);
                p.Direction = ParameterDirection.Output;
                paramArray.Add(p);
    
                using(PAMSDBContext db = new PAMSDBContext())
                {
                    try
                    {
                        db.Database.ExecuteSqlCommand("exec [p_test] @id,@returnText out", paramArray.ToArray());
                    }
                    catch (Exception ex)
                    {
                        throw;
                    }
                    string text = (string)paramArray[1].Value;
                    return text;
                }
            }

    需注意的是,下面这行代码,对于输出型参数,字符串必须设置长度,否则默认长度0,会报错  “String[1]: Size 属性具有无效大小值 0

    SqlParameter p = new SqlParameter("@returnText", SqlDbType.NVarChar,30);
  • 相关阅读:
    css 布局方式
    初识cv
    CSS 样式表{二}
    获取设备通讯录信息
    iOS Block界面反向传值小demo
    在iOS中如何正确的实现行间距与行高
    iOS开发- 获取本地视频文件
    view围绕圆心自转
    监测网络状态
    简单的九宫格算法与使用
  • 原文地址:https://www.cnblogs.com/liuliang1999/p/12566521.html
Copyright © 2011-2022 走看看