• C# 读取数据库存储过程返回值 笔记


    是笔记 所以代码没有优化。一切从简

    存储过程:

    方法1:返回一个集合,此方法灵活。

    ALTER PROCEDURE [dbo].[Porc_temp]
     AS 
     BEGIN
      select * from admin ;
     END 

    代码:

            public ActionResult Index()
            {
                DataTable dt;
                string conString = "server=.;database=xx;uid=sa;pwd=xxx;";
                using (SqlConnection con = new SqlConnection(conString))
                {
                    SqlCommand com = con.CreateCommand();
                    com.CommandText = "Porc_temp";//和存储过程名称要一致
                    com.CommandType = CommandType.StoredProcedure;
                    SqlDataAdapter da = new SqlDataAdapter(com);
                    DataSet ds = new DataSet();
                    da.Fill(ds);
                    dt = ds.Tables[0];
                }
                return View(dt);
            }

    方法2:存储过程返回单个的值。

     ALTER PROCEDURE [dbo].[porc_retrun] 
     AS 
      BEGIN  
      return 1;
     END

    代码:

            public ActionResult Details(int id)
            {
                string conString = "server=.;database=xx;uid=sa;pwd=xxx;";
                using (SqlConnection con = new SqlConnection(conString))
                {
                    SqlCommand com = con.CreateCommand();
                    com.CommandText = "porc_retrun";
                    com.CommandType = CommandType.StoredProcedure;
                    SqlParameter parms = new SqlParameter("@returnValue", SqlDbType.Int);
                    parms.Direction = ParameterDirection.ReturnValue;
                    com.Parameters.Add(parms);
                    con.Open();
                    int result = com.ExecuteNonQuery();
                    string std_id = com.Parameters["@returnValue"].Value.ToString();
                    ViewBag.id = std_id;
                }
                return View();
            }

    3:存储过程指定参数返回,其实也有点类似方法2

    存储过程:

             ALTER PROCEDURE [dbo].[Proc_add]
              @st_id int output,//指定返回的参数
              @userName varchar(20),
              @pwd varchar(20)
             AS
              BEGIN
                 insert into admin values(@userName,@pwd);
                 select @st_id=@@identity;
              END

    代码:

            public ActionResult Create(FormCollection collection)
            {
                string conString = "server=.;database=xx;uid=sa;pwd=xxx;";
                using (SqlConnection con = new SqlConnection(conString))
                {
                    SqlCommand com = con.CreateCommand();
                    com.CommandText = "Proc_add";
                    com.CommandType = CommandType.StoredProcedure;
                    SqlParameter[] parms = { 
                                            new SqlParameter("@st_id",SqlDbType.Int),
                                            new SqlParameter("@userName",SqlDbType.VarChar),
                                            new SqlParameter("@pwd",SqlDbType.VarChar)
                                           };
                    parms[0].Direction = ParameterDirection.Output;
                    parms[1].Value = "sp";
                    parms[2].Value = "112102";
                    com.Parameters.AddRange(parms);
                    con.Open();
                    int result = com.ExecuteNonQuery();
                    string std_id = com.Parameters["@st_id"].Value.ToString();
                    ViewBag.id = std_id;
                }
                return View();
            }
  • 相关阅读:
    ssh doc
    virtual box hyperV 报错
    2022.3 结构熵文章跟进(知网)
    technical_debt
    修改pycnblog
    conda doc
    SpringBoot启动原理
    Feign源码
    根据URL生成二维码返回前端页面
    Ubuntu 18.04安装pycharm详细教程
  • 原文地址:https://www.cnblogs.com/y112102/p/3011887.html
Copyright © 2020-2023  润新知