public static string GetDSSchema(DataSet ds)
{
string strSchema = "DataSet Name=" + ds.DataSetName + "\n";
//Get relations
foreach (DataRelation dl in ds.Relations)
{
strSchema += "\t" + "DataRelation Name=" + dl.RelationName;
foreach (DataColumn dc in dl.ParentColumns)
strSchema += "\t" + "ParentColummn=" + dc.ColumnName;
foreach (DataColumn dc in dl.ChildColumns)
strSchema += "\t" + "ChildColumn=" + dc.ColumnName;
strSchema += "\n";
}
//Get teables
foreach (DataTable dt in ds.Tables)
{
strSchema += "Table=" + dt.TableName + "\t";
//Get Constraints
strSchema += "Constraints =";
foreach (Constraint cs in dt.Constraints)
strSchema += cs.GetType().Name + ", ";
strSchema += "\n";
//Get PrimaryKey Columns
strSchema += "PrimaryKey Columns index:=";
foreach (DataColumn dc in dt.PrimaryKey)
strSchema += dc.Ordinal + ", ";
strSchema += "\n";
//Get Columns
foreach (DataColumn dc in dt.Columns)
{
strSchema += "ColumnName=" + dc.ColumnName + "\t" +
"ColumnType=" + dc.DataType.Name + "\t" +
"AllowDBNull=" + dc.AllowDBNull.ToString() + "\t" +
"DefaultValue=" + dc.DefaultValue.ToString() + "\t" +
"Unique=" + dc.Unique.ToString() + "\t" +
"ReadOnly=" + dc.ReadOnly.ToString() + "\n";
}
strSchema += "\n";
}
return strSchema;
}