关于在ASP.NET中用C#语言调用带输入输出参数的存储过程 10
我数据库建好了,里面的查询添加删除都是通过存储过程实现的。我现在想通过ASP.NET用C#语言实现网页上传入参数并执行相应的存储过程。...
我数据库建好了,里面的查询添加删除都是通过存储过程实现的。我现在想通过ASP.NET用C#语言实现网页上传入参数并执行相应的存储过程。
展开
展开全部
使用Parameter定义过程所需的参数,在输出参数定义的时候使用比如
SqlParameter para = new SqlParameter("@count", SqlDbType.Int);
para.Direction = ParameterDirection.Output;//这样定义,如果是在数组中请自行变通
//下面是我调用过程返回SqlDataReader的一个方法,可以按需要自己实现,供参考
//procname即调用的过程名称
//如果执行语句是用ExecuteNonQuery(),不用返回DataReader则可以定义为void
public SqlDataReader pageproc(string procname, params SqlParameter[] para)
{
SqlCommand scom = new SqlCommand(procname, con);
scom.CommandType = CommandType.StoredProcedure;
scom.Parameters.AddRange(para);
con.Open();
SqlDataReader sdr = scom.ExecuteReader(CommandBehavior.CloseConnection);
//输出参数须在SqlDataReader关闭之后才有返回,如果调用scom.Paramenters.Clear();则会使输出参数获取不到
return sdr;
}
调用了过程之后获取过程的输出参数的值,以刚才定义的那个参数为例
int count=(int)para.Value;//如果返回的是DataReader,则要在DataReader关闭之后才能获取到
另
SqlParameter para = new SqlParameter("@count", SqlDbType.Int);
para.Direction = ParameterDirection.Output;//这样定义,如果是在数组中请自行变通
//下面是我调用过程返回SqlDataReader的一个方法,可以按需要自己实现,供参考
//procname即调用的过程名称
//如果执行语句是用ExecuteNonQuery(),不用返回DataReader则可以定义为void
public SqlDataReader pageproc(string procname, params SqlParameter[] para)
{
SqlCommand scom = new SqlCommand(procname, con);
scom.CommandType = CommandType.StoredProcedure;
scom.Parameters.AddRange(para);
con.Open();
SqlDataReader sdr = scom.ExecuteReader(CommandBehavior.CloseConnection);
//输出参数须在SqlDataReader关闭之后才有返回,如果调用scom.Paramenters.Clear();则会使输出参数获取不到
return sdr;
}
调用了过程之后获取过程的输出参数的值,以刚才定义的那个参数为例
int count=(int)para.Value;//如果返回的是DataReader,则要在DataReader关闭之后才能获取到
另
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果你用了三层架构的话,就可以这样搞定:
public int GetData(变量)
{
string sql="select 语句";
DataClass data=new DataClass(); //这行是实例化data层;
return data.ExecuteNonQuery(“存储过程名",
new SqlParameter("@adminid",adminid)
new SqlParameter(@adminname",adminname)); //以变量adminid和adminname为例
}
具体变量,类型,灵活运用吧
public int GetData(变量)
{
string sql="select 语句";
DataClass data=new DataClass(); //这行是实例化data层;
return data.ExecuteNonQuery(“存储过程名",
new SqlParameter("@adminid",adminid)
new SqlParameter(@adminname",adminname)); //以变量adminid和adminname为例
}
具体变量,类型,灵活运用吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
那你写数据访问层 然后调用你的存储过程就好了
追问
能具体点么?
追答
ado.net 增删改查你会写吧
SqlParameter pnewsid = new SqlParameter("@newsid", SqlDbType.Int);
pnewsid.Value = newsid;
SqlParameter[] param = new SqlParameter[]
{
pnewsid
};
int result = Convert.ToInt32(SqlHelper.ExecuteScalar(SqlHelper.ConnectionString, CommandType.StoredProcedure, “存储过程名字", param));
if (result > 0)
return true;
return false;
SqlHelper 你自己在网上找一个就好了
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询