请大家帮忙我看看是怎么回事,总出现“列名 'Top5' 无效”
谢谢这是一个浏览留言的页面。
我数据库里面没有 “ Top5 ” 这一项,
每次调试都出现“ 列名 'Top5' 无效 ”,
错误提示出现在“ ad.Fill(ds, "infList"); ”
代码:
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
string ToPage = Request.QueryString["ToPage"];
//如果以前没打开过,则打开第1页
if (ToPage == null)
{
ToPage = "1";
}
this.repeaterBind(Convert.ToInt32(ToPage));
}
}
//打开某页
private void repeaterBind(int ToPage)
{
int CurrentPage = ToPage;
int PageSize = 5; //每页显示的记录数
int PageCount;
int RecordCount;
string PageSQL;
string DataTable = "message"; //数据表名
string DataFiled = "ID";
string DataFileds = "ID,userName,sex,message,addDate";
string DataOrders = "ID Desc";
SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings["Mconn"].ToString());
cn.Open();
//取得记录总数,计算总页数
SqlCommand cmd = new SqlCommand("Select Count(" + DataFiled + ") From " + DataTable, cn);
RecordCount = Convert.ToInt32(cmd.ExecuteScalar());
if ((RecordCount % PageSize) != 0)
{
PageCount = RecordCount / PageSize + 1;
}
else
{
PageCount = RecordCount / PageSize;
}
if (ToPage > PageCount)
{
CurrentPage = PageCount;
}
if (CurrentPage <= 1)
{
PageSQL = "Select Top" + PageSize + " " + DataFileds + " FROM " + DataTable + " Order By " + DataOrders;
}
//取不是首页的某个指定页的记录
else
{
PageSQL = "Select Top" + PageSize + " " + DataFileds + " FROM " + DataTable + " Where " + DataFiled + " Not In (Selcet Top " + PageSize * (CurrentPage - 1) + " " + DataFiled + "From" + DataTable + " Order By " + DataOrders + " ) Order By " + DataOrders;
}
SqlDataAdapter ad = new SqlDataAdapter(PageSQL, cn);
DataSet ds = new DataSet();
ad.Fill(ds, "infList");
this.lbTotalPage.Text = Convert.ToString(PageCount);
this.hlkFirstPage.NavigateUrl = "?ToPage=1";
this.hlkLastPage.NavigateUrl = "?ToPage=" + PageCount;
this.lbCurrentPage.Text = Convert.ToString(CurrentPage);
if (CurrentPage <= 1)
{
this.hlkPrevPage.Enabled = false;
CurrentPage = 1;
}
else
{
this.hlkPrevPage.Enabled = true;
this.hlkPrevPage.NavigateUrl = "?ToPage=" + (ToPage - 1);
}
if (CurrentPage >= PageCount)
{
this.hlkNextPage.Enabled = false;
CurrentPage = PageCount;
}
else
{
this.hlkNextPage.Enabled = true;
this.hlkNextPage.NavigateUrl = "?ToPage=" + (ToPage + 1);
}
Repeater1.DataSource = ds.Tables["infList"].DefaultView;
Repeater1.DataBind();
cn.Close();
} --------------------编程问答-------------------- --------------------编程问答--------------------
--------------------编程问答-------------------- 我用的是 VS 2010 , SQL 2008 --------------------编程问答-------------------- 感谢 symbol_bc , 解决了. 但是能告诉我为什么吗? --------------------编程问答-------------------- PageSQL = "Select Top " + PageSize + " " + DataFileds + " FROM " + DataTable + " Order By " + DataOrders;
PageSQL = "Select Top " + PageSize + " " + DataFileds + " FROM " + DataTable + " Where " + DataFiled + " Not In (Selcet Top " + PageSize * (CurrentPage - 1) + " " + DataFiled + "From" + DataTable + " Order By " + DataOrders + " ) Order By " + DataOrders;
//在top后面加空格
top后面要加个空格 --------------------编程问答--------------------
拼接sql习惯了,就自己会意识到这个问题,楼主完全可以自己调试的时候,把sql语句放到数据库中执行以下就明白了。
试问: select top5 * from table1 这句话怎么可能正确呢? --------------------编程问答-------------------- 楼上的朋友,能把你的QQ偷偷的告诉我吗, 我想了几天的问题,被你一看马上就解决了,好崇拜你啊。 --------------------编程问答-------------------- 我才学ASP.net , 总是遇到一些数据库语言的问题,但又不知道怎么解决。唉。 --------------------编程问答-------------------- 给你留言了
补充:.NET技术 , C#