就是在一个组件了把数据存在一个DataTable 然后用户可以读取这个的dataTable的值
可以向DataTAble 添加数据
大哥们!要怎么做才可以实现啊?

解决方案 »

  1.   


    foreach(DataRow dr in DataTable.Rows)
    {
        控件= dr["字段名"].toString();
        。
    }
      

  2.   

    谢谢大哥我是想问如何在组件里定义那个datatable
    才可以在我组件上点击按钮增加了数据后让其他组件读取数据?
      

  3.   

    DataTable NewDT=new DataTable();
    NewDT.TableName="TempTable";

                
    //new DataTable 
    //add Columns
    string thisTableName = FatherTable.TableName.Replace("[","").Replace("]","");
    for (int i=0;i<FatherTable.Columns.Count;i++)
    {
    string thisColumnsName=FatherTable.Columns[i].ToString();
    System.Type thisType= FatherTable.Columns[i].GetType();
    DataColumn NewColumn = new DataColumn(thisTableName+"."+thisColumnsName,thisType);
    NewColumn.MaxLength = FatherTable.Columns[i].MaxLength;
    NewDT.Columns.Add(NewColumn);
    }
    thisTableName = ChildTable.TableName.Replace("[","").Replace("]","");
    for (int i=0;i<ChildTable.Columns.Count;i++)
    {
    string thisColumnsName=ChildTable.Columns[i].ToString();
    System.Type thisType= ChildTable.Columns[i].GetType();
    DataColumn NewColumn = new DataColumn(thisTableName+"."+thisColumnsName,thisType);
    NewDT.Columns.Add(NewColumn);
    }

    //add Rows
    int getColumnsCount = NewDT.Columns.Count;
    int getFatherColumnsCount = FatherTable.Columns.Count;
    if (ChildTable.Rows.Count == 0) 
    {
    for (int i=0;i<FatherTable.Rows.Count;i++) 
    {
    DataRow NewRow = NewDT.NewRow();
    for (int m=0;m<getColumnsCount;m++)
    {
    if (m < getFatherColumnsCount)
    {
    NewRow[m] = FatherTable.Rows[i][m];
    }
    }
    NewDT.Rows.Add(NewRow);
    }
    }
    else if (FatherTable.Rows.Count == 0) 
    {
    for (int k=0;k<ChildTable.Rows.Count;k++)
    {
    DataRow NewRow = NewDT.NewRow();
    for (int m=getFatherColumnsCount; m < getColumnsCount; m++)
    {
    NewRow[m] = ChildTable.Rows[k][m-getFatherColumnsCount];
    }
    NewDT.Rows.Add(NewRow);
    }
    }
    else 
    {
    for (int i=0;i<FatherTable.Rows.Count;i++)
    {
    for (int k=0;k<ChildTable.Rows.Count;k++)
    {
    DataRow NewRow = NewDT.NewRow();
    for (int m=0;m<getColumnsCount;m++)
    {
    if (m<getFatherColumnsCount)
    {
    NewRow[m] = FatherTable.Rows[i][m];
    }
    else
    {
    NewRow[m] = ChildTable.Rows[k][m-getFatherColumnsCount];
    }
    }
    NewDT.Rows.Add(NewRow);
    }
    }
    }

    //Add Relations

    Relations=Relations.Trim().Replace("[","").Replace("]","");

    DataRow[] SeclectRows=NewDT.Select(Relations);

    fcTable=NewDT.Clone();

    fcTable.TableName=NewDataTableName.Trim();

    foreach (DataRow row in SeclectRows)
    {
    fcTable.Rows.Add(row.ItemArray);
    }
    // }
    return fcTable;
    }