当前位置: 代码迷 >> ASP.NET >> 怎么给DataTable修改里面的列和值
  详细解决方案

怎么给DataTable修改里面的列和值

热度:4674   发布时间:2013-02-25 00:00:00.0
如何给DataTable修改里面的列和值
有个DataTable里面的数据,如图:

列 A B C
行 1 2 3
行 1 2 3
行 1 2 3

我想写个方法
  /// <summary>
  /// 填充dt
  /// </summary>
  /// <param name="dt">dt名字</param>
  /// <param name="Columns">列名</param>
  /// <param name="value">列值</param>
  /// <param name="i">第几列</param>
  /// <returns></returns>
  private DataTable getTB(DataTable dt, string Columns,string value,int i)
  {
  }

这个方法要求可以添加其他列,例如D,E,f....不定,可以添加行A[3]=5或修改B[0]=10等等,请问怎么写?谢谢!


------解决方案--------------------------------------------------------
下面的代码出自msdn:
C# code
private System.Data.DataSet dataSet;private void MakeDataTables(){    // Run all of the functions.     MakeParentTable();    MakeChildTable();    MakeDataRelation();    BindToDataGrid();}private void MakeParentTable(){    // Create a new DataTable.    System.Data.DataTable table = new DataTable("ParentTable");    // Declare variables for DataColumn and DataRow objects.    DataColumn column;    DataRow row;    // Create new DataColumn, set DataType,     // ColumnName and add to DataTable.        column = new DataColumn();    column.DataType = System.Type.GetType("System.Int32");    column.ColumnName = "id";    column.ReadOnly = true;    column.Unique = true;    // Add the Column to the DataColumnCollection.    table.Columns.Add(column);    // Create second column.    column = new DataColumn();    column.DataType = System.Type.GetType("System.String");    column.ColumnName = "ParentItem";    column.AutoIncrement = false;    column.Caption = "ParentItem";    column.ReadOnly = false;    column.Unique = false;    // Add the column to the table.    table.Columns.Add(column);    // Make the ID column the primary key column.    DataColumn[] PrimaryKeyColumns = new DataColumn[1];    PrimaryKeyColumns[0] = table.Columns["id"];    table.PrimaryKey = PrimaryKeyColumns;    // Instantiate the DataSet variable.    dataSet = new DataSet();    // Add the new DataTable to the DataSet.    dataSet.Tables.Add(table);    // Create three new DataRow objects and add     // them to the DataTable    for (int i = 0; i<= 2; i++)    {        row = table.NewRow();        row["id"] = i;        row["ParentItem"] = "ParentItem " + i;        table.Rows.Add(row);    }}private void MakeChildTable(){    // Create a new DataTable.    DataTable table = new DataTable("childTable");    DataColumn column;    DataRow row;    // Create first column and add to the DataTable.    column = new DataColumn();    column.DataType= System.Type.GetType("System.Int32");    column.ColumnName = "ChildID";    column.AutoIncrement = true;    column.Caption = "ID";    column.ReadOnly = true;    column.Unique = true;    // Add the column to the DataColumnCollection.    table.Columns.Add(column);    // Create second column.    column = new DataColumn();    column.DataType= System.Type.GetType("System.String");    column.ColumnName = "ChildItem";    column.AutoIncrement = false;    column.Caption = "ChildItem";    column.ReadOnly = false;    column.Unique = false;    table.Columns.Add(column);    // Create third column.    column = new DataColumn();    column.DataType= System.Type.GetType("System.Int32");    column.ColumnName = "ParentID";    column.AutoIncrement = false;    column.Caption = "ParentID";    column.ReadOnly = false;    column.Unique = false;    table.Columns.Add(column);    dataSet.Tables.Add(table);    // Create three sets of DataRow objects,     // five rows each, and add to DataTable.    for(int i = 0; i <= 4; i ++)    {        row = table.NewRow();        row["childID"] = i;        row["ChildItem"] = "Item " + i;        row["ParentID"] = 0 ;        table.Rows.Add(row);    }    for(int i = 0; i <= 4; i ++)    {        row = table.NewRow();        row["childID"] = i + 5;        row["ChildItem"] = "Item " + i;        row["ParentID"] = 1 ;        table.Rows.Add(row);    }    for(int i = 0; i <= 4; i ++)    {        row = table.NewRow();        row["childID"] = i + 10;        row["ChildItem"] = "Item " + i;        row["ParentID"] = 2 ;        table.Rows.Add(row);    }}private void MakeDataRelation(){    // DataRelation requires two DataColumn     // (parent and child) and a name.    DataColumn parentColumn =         dataSet.Tables["ParentTable"].Columns["id"];    DataColumn childColumn =         dataSet.Tables["ChildTable"].Columns["ParentID"];    DataRelation relation = new         DataRelation("parent2Child", parentColumn, childColumn);    dataSet.Tables["ChildTable"].ParentRelations.Add(relation);}private void BindToDataGrid(){    // Instruct the DataGrid to bind to the DataSet, with the     // ParentTable as the topmost DataTable.    dataGrid1.SetDataBinding(dataSet,"ParentTable");}
  相关解决方案