数据库字段属性配置工具界面[用于代码生成]

来源:互联网 发布:橡皮砖淘宝 编辑:程序博客网 时间:2024/05/12 20:47

   在CodeSmith中为了实现对数据库中表字段的选择和针对字段来设置属性,决定用XML文件作为中间数据的交换方式,在CodeSmith中读取数据库对象的信息不再使用SchemaExplorer来读取,而是转为直接对XML文件的读取。

这两天做了一个配置工具,先发个界面上来:

主要是用SQLDMO来获取数据库中的对象信息,并通过PropertyGrid控件来进行属性的设置,基本的功能已经实现。

 

网友的意见:

主界面从上往下由以下控件构成:
1.菜单
2.工具栏(数据库连接按钮、?、保存、退出)
3.左侧是TabControl和treeview控件、中间是Label(BorderStyle=Fixed3D)和ListView控件、右侧是PropertyGrid

根据界面,本人的实现思路如下:
1.数据库treeview列表
单击[数据库连接按钮]打开数据源配置对话框,其中包括数据源、连接字符串等等.如果数据源是SQL Server库可用以下方式枚举SQL Server实例
using System.Data.Sql

private void EnumInstance()
{
SqlDataSourceEnumerator instance = SqlDataSourceEnumerator.Instance;
DataTable dataTable = instance.GetDataSources();
//将数据库实例名添加至ComboBox,假如窗体有cboInstance控件
foreach (DataRow row in dataTable.Rows)
{
cboInstance.Items.Add(row[1]);
}
}

数据源连接如果能成功打开,则:将实例下的所有数据库加载至TreeView控件(数据库名可从SQL Server系统字典中获得,Oracle库同理)
某个SQL Server实例下的所有数据库可通过如下语句获得:
select name from master..sysdatabases

2.TreeView控件内容:
单击左侧树形结点至[表]结点后,引发treeView控件的AfterSelect事件,AfterSelect事件的内容大概如下:
select * from sysobjects //获得库中的表信息
select * from syscolumns //获得库中的列信息

用sysobjects和syscolumns两表作内联结就应该能做出ListView的内容项

 

我用的是SQLDMO,没有用SQL语句去系统表中查询

 

出处:http://terrylee.cnblogs.com

原创粉丝点击