的DataTable刷新发行

问题描述:

是 表的副本而不是在DataList控件的DataTable刷新发行

显示

你可以建议我任何解决方案,请? 我的代码

DataTable dt1 = new DataTable(); 
    DataTable dt = frmbal.GetAllForum(); 

    for (int i = 0; i < dt.Columns.Count;i++) 
     dt1.Columns.Add(dt.Columns[i].Caption); 

    // dt1.Rows.Clear(); 
    DataRow []dr=dt.Select("intParentThreadID="+ Request.QueryString["id"]); 
    dt1.Rows.Add (dr); 
    dt1.AcceptChanges(); 
    DataList1.DataSource =dt1; 
    DataList1.DataBind(); 

这个代码是在页面加载事件 由于提前

试试这个:

foreach (DataRow dr in dt.Rows) { 
     dt1.Rows.Add(dr.ItemArray); 
} 

没有DataRowCollection.Add方法,这需要DataRow[]并插入所有行。采用object[]的过载是使用这些字段插入一条记录。

所以这不起作用:

DataRow []dr=dt.Select("intParentThreadID="+ Request.QueryString["id"]); 
dt1.Rows.Add (dr); 

您应该使用DataTable.MergeDataTable.Clone(克隆包括列的表)。

DataTable dt = frmbal.GetAllForum(); 
DataTable dt1 = dt.Clone(); 
dt1.Merge(dt); 
+0

感谢它为我工作 – 2013-03-06 08:29:12

+0

不客气。 – 2013-03-06 09:15:02

维沙尔Suthar好

。但必须在此代码是!的IsPostBack

样品的内部

protected void Page_Load(object sender, EventArgs e)  
    {  
     if (!IsPostBack)  
     {  
     DataTable dt1 = new DataTable(); 
     DataTable dt = frmbal.GetAllForum(); 
     for (int i = 0; i < dt.Columns.Count;i++) 
     dt1.Columns.Add(dt.Columns[i].Caption); 
    // dt1.Rows.Clear(); 
     DataRow []dr=dt.Select("intParentThreadID="+ Request.QueryString["id"]); 
     foreach (DataRow dr in dt.Rows) { 
     dt1.Rows.Add(dr.ItemArray); 
     } 
     dt1.AcceptChanges(); 
     DataList1.DataSource =dt1; 
     DataList1.DataBind(); 

     }  
    }