asp.net实现调用带有输出参数的存储过程实例
本文实例讲述了asp.net实现调用带有输出参数的存储过程。分享给大家供大家参考,具体如下:
前台jqurey
<scripttype="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文件:
protectedvoidPage_Load(objectsender,EventArgse)
{
Entity.Userus=newEntity.User();
us.User_name=Request.Params["user_name"].ToString();
if(us.User_CheckName())
{
Response.Write("<fontcolor=red>用户名已经存在,请尝试其它用户名!</font>");
}
else
{
Response.Write("<fontcolor=black>用户名可以使用!</font>");
}
}
user类
publicboolUser_CheckName()
{
try
{
string[,]sArray=newstring[2,2];
sArray[0,0]="@user_name";
sArray[1,0]="@r_id";
sArray[0,1]=User_name;
sArray[1,1]=null;
Factory.SqlModelsm=newFactory.SqlModel();
Id=sm.Proc_Return_R_ID("User_CheckName",sArray);
if(Id>0)
{
returntrue;
}
else
{
returnfalse;
}
}
catch(Exceptione)
{
Loglg=newLog();
lg.ExceptionError(e);
returnfalse;
}
}
sqlmodel类 一定要设置输出参数的类型及长度 否则出现错误
String[1]:theSizepropertyhasaninvalidsizeof0.
publicintProc_Return_R_ID(stringproc_name,string[,]sArray)
{
try
{
if(sArray.GetLength(0)>=1)
{
DataBasedb=newDataBase();
SqlParameter[]sqlpar=newSqlParameter[sArray.GetLength(0)];//加入返回值
for(inti=0;i<sArray.GetLength(0);i++)
{
sqlpar[i]=newSqlParameter(sArray[i,0],sArray[i,1]);
}
sqlpar[sArray.GetLength(0)-1].Direction=ParameterDirection.Output;
sqlpar[sArray.GetLength(0)-1].SqlDbType=SqlDbType.Int;
returndb.Proc_Return_R_ID(proc_name,sqlpar);
}
else
{
return0;
}
}
catch
{
return0;
}
}
DATABASE.cs类
publicintProc_Return_R_ID(stringproc_name,paramsSqlParameter[]cmdParms)
{
try
{
OpenConnection();
if(cmdParms!=null)
{
foreach(SqlParameterparameterincmdParms)
{
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
{
return0;
}
}
catch
{
return0;
}
finally
{
BaseSqlCommand.Parameters.Clear();
CloseConnection();
}
}
希望本文所述对大家asp.net程序设计有所帮助。