OleDbConnection connections = new OleDbConnection(connnectionString);
connections.Open();
DataTable table = connections.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
DataTable Provider_Typesr = connections.GetOleDbSchemaTable(OleDbSchemaGuid.Provider_Types, null);
#region 循环获取数据库中所有表名
TreeNode treeNode = new TreeNode();
foreach (DataRow row in table.Rows)
{
treeNode.Tag = "数据表";
treeNode.Text = row["TABLE_NAME"].ToString();
if (treeNode.Text.Contains('~'))
{
continue;
}
DataTable tables = connections.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, new object[] { null, null, treeNode.Text, null });
tables.DefaultView.Sort = "ORDINAL_POSITION ASC";
tables = tables.DefaultView.ToTable();
#region 根据表名获取表结构
List<model> list = new List<model>();
foreach (DataRow r in tables.Rows)
{
model mo = new model(); //循环获取当前查询的表
mo.name = r["COLUMN_NAME"].ToString();//字段名称
var IS_NULLABLE = r["IS_NULLABLE"].ToString();// //允许空
if (IS_NULLABLE== "false")
{
mo.IS_NULLABLE = "NOT NULL";
}
var DATA_TYPE = r["DATA_TYPE"].ToString(); //字段类型
if (DATA_TYPE == "130")
{
mo.DATA_TYPE = "TEXT";
}
else if (DATA_TYPE == "3" || DATA_TYPE == "2" || DATA_TYPE == "17")
{
mo.DATA_TYPE = "INTEGER";
}