您的位置:首页 > 数据库

根据SQLServer数据表生成C#实体类

2012-08-28 09:33 239 查看
生成表的实体类工具,有助于减少代码量,加快开发速度.

先看效果图





第一副图根据输入的连接服务器地址 用户名 登录数据库名 密码连接到数据库.如果错误则提示连接失败.

第二幅图先取的当前数据库所有的用户创建的表

然后根据选中的表名取得数据库中关于此表信息的的系统表.然后将字段类型转换为C#数据类型.并输出的TextBox

这里主要用到几个表

select * from sys.extended_properties 表注释 和列注释,列的排列顺序(不带列名)

select * from sys.columns 数据库表所有列的详细信息 字段类型,表的字段,名称等

select * from sysobjects where xtype = 'U' --所有用户创建的表 列ID

select * from systypes --SQL SERVER 数据库所有的类型

select * from syscolumns 所有字段名称 长度等

下面以 Ts_Customers 为例 取得此表的 列名,列类型,表注释,列注释

select syscolumns.name,systypes.name as type
,(select isnull(value,'') from sys.extended_properties ex_p where ex_p.minor_id=0

and ex_p.major_id=sysobjects.id) as TableDemo
,ext.value as colName from syscolumns
INNER JOIN sysobjects ON syscolumns.id = sysobjects.id
INNER JOIN systypes ON syscolumns.xtype = systypes.xtype
INNER join sys.extended_properties as ext on ext.major_id=sysobjects.id
and ext.minor_id=syscolumns.colorder
WHERE (sysobjects.name = 'Ts_Customers') AND (systypes.name <> 'sysname')

效果如下



取得结果后.就是循环写入到TextBox了。这里代码不贴了.很简单

基本达到想要的效果.遗憾的是想把数据库连接测试通过后动态保持到app.config 然后从配置文件读取.怎奈发现应用程序执行中.只有下次才能从配置文件中读.所以就没这么做.

源码下载
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: