您的位置:首页 > 移动开发 > Objective-C

牛腩新闻发布系统笔记9:存储过程

2011-08-27 11:13 579 查看
建立存储过程:

可编程性===》存储过程===》新建存储过程:

删除一切没有用的注释,最后存储过程代码如下:

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		张奎伟
-- Create date: 2011-8-27
-- Description:	取出最新10条新闻(所属分类、新闻标题、发布时间)
-- =============================================
CREATE PROCEDURE procNewsSelectNewNews

AS
BEGIN
select top 10 n.id,n.title,n.createTime,c.[name] from news n
inner join category c on n.caId=c.id
order by n.createTime desc
END
GO


SQL里面执行存储过程:

在SQL里面执行一个已经定义好的存储过程,用exec+存储过程名

代码:

exec procNewsSelectNewNews

.NET里面执行存储过程:

写一个执行存储过程的函数:

public DataTable test(string procName)
{

DataTable dt = new DataTable();
cmd = new SqlCommand(procName, GetConn());
//比执行SQL语句就多了这句话,其他代码都一样
cmd.CommandType = CommandType.StoredProcedure;
using (sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection))
{
//把查询出的数据加载到数据表中
dt.Load(sdr);
}
return dt;
}


前台调用:
protected void Page_Load(object sender, EventArgs e)
{

GridView1.DataSource = new SQLHelper().test("procNewsSelectNewNews");//传入在SQL中已经做好的存储过程名字即可。
GridView1.DataBind();

}


编写有参数的存储过程:

如:根据新闻ID取出该条新闻主体内容
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: keithray
-- Create date: 2011-8-27
-- Description:根据新闻ID取出该条新闻主体内容
-- =============================================
CREATE PROCEDURE news_SelectById
@id int
AS
BEGIN
select title,[content],createTime,caId from news where id=@id
END
GO


SQL执行:
exec news_SelectById 2  //exec + 存储过程名 + 参数
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息