ALTER PROCEDURE dbo.GetTopNews
(
@NewsKindId int,
@IntTop int
)
AS
declare @sql varchar(200)
set @sql='select top '+cast(@IntTop as varchar)+' * from News where NewsKindId='+cast(@NewsKindId as varchar)
ExEC (@sql)
RETURN通过这个获得了 数据库的前面的数据 请问该如何 获得最后更新的资料 是 'select down' 吗?
(
@NewsKindId int,
@IntTop int
)
AS
declare @sql varchar(200)
set @sql='select top '+cast(@IntTop as varchar)+' * from News where NewsKindId='+cast(@NewsKindId as varchar)
ExEC (@sql)
RETURN通过这个获得了 数据库的前面的数据 请问该如何 获得最后更新的资料 是 'select down' 吗?
@NewsKindId int,
@IntTop int
) AS
declare @sql varchar(200)
set @sql='select top '+cast(@IntTop as varchar)+' * from News where NewsKindId='+cast(@NewsKindId as varchar)+'order by NewsId desc'
ExEC (@sql)
RETURN 可以这么写吗?
SQL SERVER 没有 select down
if 是 2005 可以用 rownumber
2005 可以用 rownumber
如果有日期字段,按照日期倒排序,然后select top
也就是从后台最新录入的新闻不能在第一条位置显示。具体问题如下:
首页Default.aspx的代码:
<tr>
<td align="left"><% Response.Write(BindTopNews(1,6));%>
</td>
</tr>
首页Default.aspx.cs的代码:
public string BindTopNews(int NewsKind, int intTop)
{
StringBuilder strNews = new StringBuilder();
List<News> AllNews = new List<News>();
AllNews = News.GetTopNews(NewsKind, intTop);
foreach (News SingleNews in AllNews)
{
strNews.Append("<FONT color=#c5180a>·</FONT>");
strNews.Append("<a href='NewsShow.aspx?id=");
strNews.Append(SingleNews.NewsId);
strNews.Append("' target='_blank'>");
strNews.Append(Strings.CutString(SingleNews.NewsTitle, 32));//截取新闻标题长度,超出部分用省略号代替
strNews.Append("</a> ");
strNews.Append(SingleNews.PubDate.ToString("[MM-dd]"));
strNews.Append("<br />");
strNews.Append("<br />");
}
return strNews.ToString();
}
类News.cs的代码:
public static List<News> GetTopNews(int NewsKindId, int IntTop)
{
List<News> AllNews = new List<News>();
string procname = "dbo.GetTopNews";
SqlParameter[] prams ={ new SqlParameter("@NewsKindId", SqlDbType.Int),
new SqlParameter("@IntTop", SqlDbType.Int)};
prams[0].Value = NewsKindId;
prams[1].Value = IntTop;
SqlDataReader Dr = DataBase.RunProcGetReader(procname,prams);
while (Dr.Read())
{
AllNews.Add(new News(Dr)); }
Dr.Close();
return AllNews;
}
存储过程GetTopNews的代码:
ALTER PROCEDURE dbo.GetTopNews
(
@NewsKindId int,
@IntTop int
)
AS
declare @sql varchar(200)
set @sql='select top '+cast(@IntTop as varchar)+' * from News where NewsKindId='+cast(@NewsKindId as varchar)
RETURN
我将存储过程改写为:set @sql='select top '+cast(@IntTop as varchar)+' * from News where NewsKindId='+cast(@NewsKindId as varchar)+'order by NewsId desc'
程序运行出错。
盼望高手指点,不甚感激!