.NET 获得sql存储过程并返回值

public string RunProcedure(OleDbParameter[] paramInput, OleDbParameter[] paramOutput, string procName)
        {
            int cnt = 0;
            string returnString = "-2";
            try
            {
                String ConnStr = OleDbHelper.GetOleDBConnection();
                using (OleDbConnection connection = new OleDbConnection(ConnStr))

                {
                OleDbCommand cmd = new OleDbCommand();
                cmd.CommandText = procName;
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Connection = conn;
                for (int i = 0; i < paramInput.Length; i++)
                {
                    cmd.Parameters.Add(paramInput[i]);
                }
                for (int i = 0; i < paramOutput.Length; i++)
                {
                    cmd.Parameters.Add(paramOutput[i]);
                }
                cnt = cmd.ExecuteNonQuery();
                System.Data.OleDb.OleDbDataAdapter adapter = new OleDbDataAdapter(cmd);
                DataSet ds = new DataSet();
                adapter.Fill(ds);

      }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
                returnString = "错误标识";
            }
            finally
            {
                if (cnt > 0)
                {
                    for (int i = 0; i < paramOutput.Length; i++)
                    {
                        returnString = paramOutput[i].Value.ToString();
                    }
                }
                this.Close();
            }
            return returnString;
        }

   做下解释:

  1. cnt=cmd.ExecuteNonQuery() 这里cnt是改动的记录数 如果没有修改返回-1

  2. 如果是output定义的出参的话 在执行完上述语句后用returnString = paramOutput[i].Value.ToString();接收参数。

  3. 返回结果集,经过测试。

    System.Data.OleDb.OleDbDataAdapter adapter = new OleDbDataAdapter(cmd);
    DataSet ds = new DataSet();
    adapter.Fill(ds);

       4. 接受存储过程中return返回的值:

              cmd.Parameters.Add("@return", SqlDbType.Int);
              cmd.Parameters["@return"].Direction = ParameterDirection.ReturnValue;

              cmd.ExecuteNonQuery();
              string returnS=cmd.Parameters["@return"].Value.ToString();

转载于:https://www.cnblogs.com/northeastTycoon/archive/2012/11/29/2794716.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值