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

建立存储过程:

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

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

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 + 存储过程名 + 参数




你可能感兴趣的:(牛腩新闻发布系统笔记9:存储过程)