当前位置: 代码迷 >> ASP.NET >> 关于datatable的有关问题,
  详细解决方案

关于datatable的有关问题,

热度:6046   发布时间:2013-02-26 00:00:00.0
关于datatable的问题,急啊!
C# code
               DBaction db = new DBaction();        string sql1 = "select * from adlist where ad_top ='Y'";        string sql2 = "select * from adlist where ad_top ='N'";        DataTable dt1 = db.Select(sql1);        DataTable dt2 = db.Select(sql2);        DataTable dt = new DataTable();        dt = dt2;        dt.Merge(dt1);//将dt2接入dt1变成dt。        DataSet ds = new DataSet();        ds.Tables.Add(dt);

C# code
        sqlDataAdapter sda = new OleDbDataAdapter("select * from t_product",conn);//省略了连接过程代码               DataSet ds = new DataSet();                sda.Fill(ds, pager1.PageSize * (pager1.CurrentPageIndex - 1), pager1.PageSize, "temptbl");        DataList1.DataSource = ds.Tables["temptbl"];        DataList1.DataBind();


我想请问如何将第一段代码中的DataTable dt能像第二段代码中的“sda.Fill(ds, pager1.PageSize * (pager1.CurrentPageIndex - 1), pager1.PageSize, "temptbl");”这样,截取一段放入dataset?因为我要分页。
ps:因为需要我要执行两次select,请各位不要建议我只执行一次select,然后用sqlDataAdapter。

------解决方案--------------------------------------------------------
手写分页
C# code
protected void DataBinds()    {        SqlConnection cn = new SqlConnection("Data Source=.;Initial Catalog=Test;Integrated Security=True");//连接并实例化数据库        string sql = "select * from Student";//定义查询语句        SqlDataAdapter da = new SqlDataAdapter(sql, cn);//实例化对象Adapter        DataSet ds = new DataSet();//实例化DataSet        da.Fill(ds, "Student");//填充        PagedDataSource pds = new PagedDataSource();//初始化分页事例        pds.DataSource = ds.Tables["Student"].DefaultView;        pds.AllowPaging = true;//启动分页        pds.PageSize = 5;//每页显示的个数        CurrentIndex = int.Parse(this.Label1.Text) - 1;//获取当前页数索引        pds.CurrentPageIndex = CurrentIndex;        if (CurrentIndex == 0)        {//如果是第一页,上一页和第一页的控件不可点击            this.PreviousLB.Enabled = false;            this.FirstLB.Enabled = false;            this.NextLB.Enabled = true;            this.EndLB.Enabled = true;        }        else if (CurrentIndex == pds.PageCount - 1)        {            //如果是最后一页,下一页和最后一页空间不可点击            this.PreviousLB.Enabled = true;            this.FirstLB.Enabled = true;            this.NextLB.Enabled = false;            this.EndLB.Enabled = false;        }        else        {            this.PreviousLB.Enabled = true;            this.FirstLB.Enabled = true;            this.NextLB.Enabled = true;            this.EndLB.Enabled = true;        }        this.Label2.Text = pds.PageCount.ToString();//获取总页数        DataList1.DataSource = pds;//绑定DataList数据        DataList1.DataBind();    }    protected void FirstLB_Click(object sender, EventArgs e)//首页    {        this.Label1.Text = "1";//页数为1        DataBinds();    }    protected void PreviousLB_Click(object sender, EventArgs e)    {        this.Label1.Text = (int.Parse(Label1.Text) - 1).ToString();//页数减1        DataBinds();    }    protected void NextLB_Click(object sender, EventArgs e)//下一页    {        this.Label1.Text = (int.Parse(this.Label1.Text) + 1).ToString();//页数加1        DataBinds();    }    protected void EndLB_Click(object sender, EventArgs e)//末页    {        this.Label1.Text = Label2.Text;//页数为最后一页        DataBinds();    }    protected void JumpLB_Click(object sender, EventArgs e)    {        try        {            if (int.Parse(TextBox1.Text) > 0 && int.Parse(TextBox1.Text) <= int.Parse(Label2.Text))            {                this.Label1.Text = TextBox1.Text;                DataBinds();            }            else            {                Response.Write("<script>alert('请输入有效数字')</script>");                TextBox1.Text = null;            }        }        catch        {            Response.Write("<script>alert('系统出错')</script>");            Response.Redirect("~/Default.aspx");        }    }
  相关解决方案