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

来源:百度知道 编辑:UC知道 时间:2024/05/29 23:09:49
如下图所示,我的Bll文件夹里是调用存储过程或者视图的代码,Data文件夹里面是数据库的链接、返回数据表的集合、DataReader、sqlCommand类对象等, DataModel是数据库中表的模版。
现在我有一个页面即在如图的UI文件夹中,我希望能够显示视频及其的详细信息。建存储过程如下:
create proc pro_falshDetailed
@ID int
as
select falshUrl,nvar_title,ntext_content from tb_views
where ID=@ID

在Bll中调用应该是什么?我不清楚带输入参数的存储过程如何写这里面的代码,而ID是我的再UI界面里得到的,如果是视图或者简单的查询存储过程Bll里面的代码应该是这样的:
public DataTable pFour()
{
SqlCommand myCom = data.GetCommandStr("XX");
如果是视图XX=select * from vie_productionFour;如果是不带参数的村粗过程直接是存储过程的名称。
DataTable dt = data.GetDataSet(myCom, "pFour");
return dt;
}
哪位高手能帮我看看带输入参数的存储过程在Bll里面的代码是怎么写的啊?

既然Data已经返回DataTable,那么BLL应该对这个DataTable进一步封装.但是根据你目前的组织架构, 还没有完全实现三层架构.BLL很难再进一步封装.
所以我建议你增加一个实体类.类似于
public class Views
{
public string falshUrl
{
get;
set;
}
public string nvar_title
{
}
}

然后BLL里可以
public Views pFour(int Id)
{
DataTable dt = data.pFour(Id);

Views view = new Views();
view.falshUrl = dt.Rows[0]["falshUrl"].ToString();
view.nvar_title = dt.Rows[0]["nvar_title"].ToString();

return view;
}

前台直接BLL bll = new BLL();
Views view = bll.pFour(Id);

Lable1.Text = view.falshUrl;
Lable2.Text = view.nvar_title;

很加你单,让pFour()函数接受一个INT参数就行了
然后把这个参数传给存数过程,关于带参数的存储过程如何用网上有太多例子了