我需要可视化任何数据库的数据库模式。为了简单起见,这样做没有表之间的链接。现在我有一个列类的名称和数据类型,一个表类的名称和列的列表和DBSchema类的表的列表。表也应该缩进在一个单一的行简单。如何可视化的模式,如果表的数量和内容是未知的?
我尝试过使用UraniumUI DataGrid来可视化单个表,但由于我是MAUI或Xamarin的新手,所以不知道下一步该怎么做。下面是我的类和方法来获取模式:
public class Column
{
public string ColumnName { get; set; }
public string DataType { get; set; }
public bool IsPrimaryKey { get; set; }
}
public class Table
{
public string TableName { get; set; }
public List<Column> Columns { get; set; }
}
public class DBSchema
{
public List<Table> Tables { get; set; }
public void AddTable(Table table)
{
Tables.Add(table);
}
}
public static DBSchema GetDBSchema(string connectionString)
{
DBSchema schema = new DBSchema();
var connection = new SqlConnection(connectionString);
connection.Open();
DataTable tablesScheme = connection.GetSchema("Tables");
foreach (DataRow table in tablesScheme.Rows)
{
string tableName = table["TABLE_NAME"].ToString();
DataTable columnsScheme = connection.GetSchema("Columns", new string[] { null, null, tableName });
List<Column> columns = new List<Column>();
foreach (DataRow column in columnsScheme.Rows)
{
columns.Add(new Column(column["COLUMN_NAME"].ToString(), column["DATA_TYPE"].ToString()));
}
schema.AddTable(new Table(tableName, columns));
}
connection.Close();
return schema;
}
1条答案
按热度按时间c90pui9n1#
通常,您可以使用嵌套集合视图和自定义数据模板
<CollectionView ItemsSource="{Binding Tables}" />
问题太抽象了,无法详细回答。
https://learn.microsoft.com/en-us/dotnet/maui/user-interface/controls/collectionview/?view=net-maui-7.0