当前位置:编程学习 > C#/ASP.NET >>

请大家帮忙我看看是怎么回事,总出现“列名 '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();
    } --------------------编程问答-------------------- --------------------编程问答--------------------

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后面加空格
--------------------编程问答-------------------- 我用的是 VS 2010 , SQL 2008 --------------------编程问答-------------------- 感谢 symbol_bc , 解决了. 但是能告诉我为什么吗? --------------------编程问答--------------------   PageSQL = "Select Top " + PageSize + " " + DataFileds + " FROM " + DataTable + " Order By " + DataOrders;
top后面要加个空格 --------------------编程问答--------------------
引用 4 楼 xgagui 的回复:
感谢 symbol_bc , 解决了. 但是能告诉我为什么吗?


拼接sql习惯了,就自己会意识到这个问题,楼主完全可以自己调试的时候,把sql语句放到数据库中执行以下就明白了。

试问: select top5 * from table1   这句话怎么可能正确呢? --------------------编程问答-------------------- 楼上的朋友,能把你的QQ偷偷的告诉我吗, 我想了几天的问题,被你一看马上就解决了,好崇拜你啊。 --------------------编程问答-------------------- 我才学ASP.net  , 总是遇到一些数据库语言的问题,但又不知道怎么解决。唉。 --------------------编程问答-------------------- 给你留言了
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,