- 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"); } }