如题,具体问题就是想通过业务对象clickRanking类中GetDataSet()方法获取数据库中数据,
并对返回结果集DataSet进行处理来实现在aspx页面的局部以固定行数显示数据,不借用分页!
但是经测试自己写的方法中对DataSet对象超出固定行数的Rows[i]的删除Remove老有问题!不得其解!
具体代码如下,望高手指出其中错误之处,或授实现该需求的更优的方法!万分感谢~在线等待中....
using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;
/// <summary>
///clickRanking 的摘要说明:
///实现新闻的点击排行
/// </summary>
public class clickRanking
{
public clickRanking()
{
}
public DataSet GetDataSet()
{
string connstr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
SqlConnection sqlconn = new SqlConnection(connstr);
DataSet ds = new DataSet();
DataTable db;
db = ds.Tables["NewsRanking"];
string selectString = "SELECT Title FROM [tb_News] WHERE ([Viewed] IS NOT NULL) ORDER BY [Viewed] DESC, [ID]";
sqlconn.Open();
SqlDataAdapter da = new SqlDataAdapter(selectString, sqlconn);
da.Fill(ds, "NewsRanking");
sqlconn.Close();
sqlconn = null;
//控制GridView中数据显示的行数
int num = 10;
int Count = ds.Tables["NewsRanking"].Rows.Count;
if (Count > num)
{
for (int i = 0; i < Count; i++)
{
if (i > num) //若i超过限定值num=10,将Rows[i]及其以后的删除
ds.Tables["NewsRanking"].Rows.RemoveAt(i);
}
}
return ds;
}
}