0

我想从一个数据表到另一个数据表的特定数据我试过这个数据是表中的副本但未显示在 DataList 中

你能建议我任何解决方案吗?我的代码

    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();

此代码在页面加载事件中提前致谢

4

3 回答 3

0

试试这个:

foreach (DataRow dr in dt.Rows) {
        dt1.Rows.Add(dr.ItemArray);
}
于 2013-03-06T08:21:41.133 回答
0

没有DataRowCollection.Add采用 aDataRow[]并插入所有行的方法。采用 an 的重载object[]是使用这些字段插入一条记录。

所以这不起作用:

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

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

DataTable dt = frmbal.GetAllForum();
DataTable dt1 = dt.Clone();
dt1.Merge(dt);
于 2013-03-06T08:22:32.093 回答
0

维沙尔·苏塔尔不错

.但是这段代码必须在 !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();

        }    
    }
于 2013-03-06T08:28:58.557 回答