asp.net 调用带有输出参数的存储过程

前台jqurey


<!--
   <script type="text/javascript">
   $(document).ready(function(){ 
    $('#change_image').click(function(){ $('#imgAuthenCode').attr('src','CheckCode.aspx?'+Math.random());});
    $("#accounts").mouseout(function(){
      $.ajax({
       url:"checkusername.aspx",
       type:"post",
       datatype:"html",
       data:{user_name:$("#accounts").val()},
       success:function(msg){$("#tip_accounts").html(msg);}
       });});

   }); 
   
   
   </script>-->
     <script type="text/javascript">
   $(document).ready(function(){ 
    $('#change_image').click(function(){ $('#imgAuthenCode').attr('src','CheckCode.aspx?'+Math.random());});
    $("#accounts").bind("blur",function(){
      $.ajax({
       url:"checkusername.aspx",
       type:"post",
       datatype:"html",
       data:{user_name:$("#accounts").val()},
       success:function(msg){$("#tip_accounts").html(msg);}
       });});

   }); 
   
   
   </script>



aspx文件

    protected void Page_Load(object sender, EventArgs e)
    {
            Entity.User us = new Entity.User();
            us.User_name = Request.Params["user_name"].ToString();
            if (us.User_CheckName())
            {
                Response.Write("<font color=red>用户名已经存在,请尝试其它用户名!</font>");
            }
            else
            {
                Response.Write("<font color=black>用户名可以使用!</font>");
            }
    }

user类

        public bool User_CheckName()
        {
            try
            {
                string[,] sArray = new string[2, 2];
                sArray[0, 0] = "@user_name";
                sArray[1, 0] = "@r_id";
                sArray[0, 1] = User_name;
                sArray[1, 1] = null;
                Factory.SqlModel sm = new Factory.SqlModel();
                Id = sm.Proc_Return_R_ID("User_CheckName", sArray);
                if (Id > 0)
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }
            catch (Exception e)
            {
                Log lg = new Log();
                lg.ExceptionError(e);
                return false;
            }
        }

sqlmodel 类  一定要设置输出参数的类型 及长度  否则出现 错误

String[1]: the Size property has an invalid size of 0.


        public int Proc_Return_R_ID(string proc_name, string[,] sArray)
        {
            try
            {
                if (sArray.GetLength(0) >= 1)
                {
                    DataBase db = new DataBase();
                    SqlParameter[] sqlpar = new SqlParameter[sArray.GetLength(0)];//加入返回值
                    for (int i = 0; i < sArray.GetLength(0); i++)
                    {
                        sqlpar[i] = new SqlParameter(sArray[i, 0], sArray[i, 1]);
                    }
                    sqlpar[sArray.GetLength(0) - 1].Direction = ParameterDirection.Output;
                    sqlpar[sArray.GetLength(0) - 1].SqlDbType = SqlDbType.Int;
                    return db.Proc_Return_R_ID(proc_name, sqlpar);
                }
                else
                {
                    return 0;
                }
            }
            catch
            {
                return 0;
            }
        }


DATABASE.cs 类

        public int Proc_Return_R_ID(string proc_name, params SqlParameter[] cmdParms)
        {
            try
            {
                OpenConnection();
                if (cmdParms != null)
                {
                    foreach (SqlParameter parameter in cmdParms)
                    {
                        if ((parameter.Direction == ParameterDirection.InputOutput || parameter.Direction == ParameterDirection.Input) && (parameter.Value == null))
                        {
                            parameter.Value = DBNull.Value;
                        }
                        BaseSqlCommand.Parameters.Add(parameter);
                    }
                    BaseSqlCommand.CommandType = CommandType.StoredProcedure;
                    BaseSqlCommand.CommandText = proc_name;
                    BaseSqlCommand.ExecuteNonQuery();

                    return (int)BaseSqlCommand.Parameters["@r_id"].Value;
                }
                else
                {
                    return 0;
                }
            }
            catch
            {
                return 0;
            }
            finally
            {
                BaseSqlCommand.Parameters.Clear();
                CloseConnection();
            }
        }




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lyflcear

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值