我本来想用如下赋值的方法,可是提示Columns是只读的,各位兄弟有什么好的方法没?
DataSet2.Tables["ReportBuilding"].Columns["楼栋"] = DataSet1.Tables["ReportBuilding"].Columns["BuildingNO"];

解决方案 »

  1.   

    DataView dr = new DataView(DataSet1.Tables["ReportBuilding"]);dr.RowFilter = ....
    过滤掉的就是你需要的数据了
      

  2.   

    接楼上
    foreach(datarowview drv in dr)
    {
    dataset2.Tables["ReportBuilding"].ImportRow(drv.Row);
    }
      

  3.   

    for(int i = 0; i < dsPrint.Tables["ReportBuilding"].Rows.Count; ++i)
    {
    object[] aRow = new object[]{ds1.Tables["表名称"].Rows[i]["列名称"], ……其他各列(注意各列要对应)};
    ds2.Tables["表名称"].Rows.Add(aRow);
    }
      

  4.   

    只好手动来写了。-------------------------
    http://www.notsoft.cn
      

  5.   

    如果结构是一样的话,可以考虑DataSet.Merge方法。private void DemonstrateMerge() 
    {
        // Create a DataSet with one table, two columns, and three rows.
        DataSet dataSet = new DataSet("dataSet");
        DataTable table = new DataTable("Items");
        DataColumn idColumn = new DataColumn("id", 
            Type.GetType("System.Int32"));
        idColumn.AutoIncrement=true;
        DataColumn itemColumn = new DataColumn("Item", 
            Type.GetType("System.Int32"));    // DataColumn array to set primary key.
        DataColumn[] keyColumn= new DataColumn[1];
        DataRow row;    // Create variable for temporary DataSet. 
        DataSet changeDataSet;    // Add columns to table, and table to DataSet.   
        table.Columns.Add(idColumn);
        table.Columns.Add(itemColumn);
        dataSet.Tables.Add(table);    // Set primary key column.
        keyColumn[0]= idColumn;
        table.PrimaryKey=keyColumn;    // Add ten rows.
        for(int i = 0; i <10;i++)
        {
            row=table.NewRow();
            row["Item"]= i;
            table.Rows.Add(row);
        }    // Accept changes.
        dataSet.AcceptChanges();
        PrintValues(dataSet, "Original values");    // Change two row values.
        table.Rows[0]["Item"]= 50;
        table.Rows[1]["Item"]= 111;    // Add one row.
        row=table.NewRow();
        row["Item"]=74;
        table.Rows.Add(row);    // Insert code for error checking. Set one row in error.
        table.Rows[1].RowError= "over 100";
        PrintValues(dataSet, "Modified and New Values");
        // If the table has changes or errors, create a subset DataSet.
        if(dataSet.HasChanges(DataRowState.Modified | 
            DataRowState.Added)& dataSet.HasErrors)
        {
            // Use GetChanges to extract subset.
            changeDataSet = dataSet.GetChanges(
                DataRowState.Modified|DataRowState.Added);
            PrintValues(changeDataSet, "Subset values");
            // Insert code to reconcile errors. In this case reject changes.
            foreach(DataTable changeTable in changeDataSet.Tables)
            {
                if (changeTable.HasErrors)
                {
                    foreach(DataRow changeRow in changeTable.Rows)
                    {
                        //Console.WriteLine(changeRow["Item"]);
                        if((int)changeRow["Item",
                            DataRowVersion.Current ]> 100)
                        {
                            changeRow.RejectChanges();
                            changeRow.ClearErrors();
                        }
                    }
                }
            }
            PrintValues(changeDataSet, "Reconciled subset values");
            // Merge changes back to first DataSet.
            dataSet.Merge(changeDataSet);
            PrintValues(dataSet, "Merged Values");
        }
    }private void PrintValues(DataSet dataSet, string label)
    {
        Console.WriteLine("\n" + label);
        foreach(DataTable table in dataSet.Tables)
        {
            Console.WriteLine("TableName: " + table.TableName);
            foreach(DataRow row in table.Rows)
            {
                foreach(DataColumn column in table.Columns)
                {
                    Console.Write("\table " + row[column] );
                }
                Console.WriteLine();
            }
        }
    }