前言:
项目实战中不论是业务编码还是通用编码,总会归纳出一些通用的工具类。放入项目中一劳永逸,让兄弟姐妹们避免编写重复代码。所以利用了工作之余的时间,将这些散落在多个项目中精致优雅的工具类,归纳起来形成工程,方便后续工作的使用和便捷开发。
根据实际需求,编写了此工具。目前只支持SQLServer数据库,不过我自己有时间也会完成其他数据库支持的,有兴趣的读者可以继续扩展支持其他数据库。
功能:
1、能自动获得用户数据库中的所有数据表;
2、能根据用户所选的数据表,自动生成实体类;
3、能自动产生 C# 实体类的(*.cs)代码文件;
实体工具:
一、界面截图:
二、SQL语句部分代码
----1. 获取所有的数据库名-----
SELECT NAME FROM MASTER.DBO.SYSDATABASES ORDER BY NAME
-----2. 获取所有的表名------
SELECT NAME FROM SYSOBJECTS WHERE XTYPE='U' ORDER BY NAME
--XTYPE='U':表示所有用户表;
--XTYPE='S':表示所有系统表;
SELECT NAME FROM SYSOBJECTS WHERE TYPE = 'U' AND SYSSTAT = ''
----注意:一般情况只需要TYPE = 'U',但有时候会有系统表混在其中(不知道什么原因),加上后面一句后就能删除这些系统表了。
三、C#部分代码
///
/// 获取所有数据库
///
///
///
public static List GetAllDataBaseName(string connection)
{
List dic = new List();
string ConnString = "select name from Master.sys.SysDatabases order by name";
SqlConnection connect = new SqlConnection(connection);
SqlCommand cmd = new SqlCommand(ConnString, connect);
try
{
if (connect.State == ConnectionState.Closed)
{
connect.Open();
IDataReader dr = cmd.ExecuteReader();
dic.Clear();
while (dr.Read())
{
dic.Add(new DbTable { value = dr["name"].ToString(), key = dr["name"].ToString() });
}
dr.Close();
}
}
catch (Exception ex)
{
throw new AggregateException("获得数据库地址错误,你想上天吗?");
}
finally
{
if (connect != null && connect.State == ConnectionState.Open)
{
connect.Dispose();
}
}
return dic;
}
///
/// 写文件
///
/// 文件完整路径
/// 内容
private static void WriteAndSave(string fileName, string content)
{
//实例化一个文件流--->与写入文件相关联
using (var fs = new FileStream(fileName, FileMode.Create, FileAccess.Write))
{
//实例化一个StreamWriter-->与fs相关联
using (var sw = new StreamWriter(fs))
{
//开始写入
sw.Write(content);
//清空缓冲区
sw.Flush();
//关闭流
sw.Close();
fs.Close();
}
}
}
工具下载:
总结:
1.避免编写重复代码,编写此工具生成实体类快速开发。
2.这类工具在网上已有不少,但是自己可以归纳起来形成工程,放入项目中,不仅自己从中可以学到新的知识也同时提升了自己的总结归纳能力。
3.此工具还未完善,只支持SQLServer数据库,不过我自己有时间也会完成其他数据库支持的,有兴趣的读者可以继续扩展支持其他数据库。
4.如果有不对的或不理解的地方,希望大家可以多多指正,提出问题,才能站在更多用户角度,编写了出更便捷实用的工具。
c# 实体类生成工具
一个简单生成c#实体类的工具 源代码下载
C#实体类生成工具(onlymodel)
最近刚从常用数据库Mysql转到SqlServer,深陷于没有实体生成工具的痛苦,尝试过动软,但生成的字段类型和数据库的有些不对应.以及网上的一些实体生成工具,但要么操作太过繁琐,要么效果不如人意,所 ...
ORM存储过程和实体类代码生成工具
ORM存储过程和实体类生成工具 自己写的一个ORM框架的存储过程和实体类生成工具,具体界面如下: 操作步骤: 1.设置数据库连接: 2.选择要生成的表或视图: 3.选择要生成的存储过程类型: 4.如果 ...
C# T4 模板 数据库实体类生成模板(带注释,娱乐用)
说明:..,有些工具生成实体类没注释,不能和SqlServer的MS_Description属性一起使用,然后照着网上的资源,随便写了个生成模板,自娱自乐向,其实卵用都没有参考教程 1.htt ...
[开源] FreeSql.AdminLTE.Tools 根据实体类生成后台管理代码
前言 FreeSql 发布至今已经有9个月,功能渐渐完善,自身的生态也逐步形成,早在几个月前写过一篇文章,您可以 ...
EF:根据实体类生成表结构SQL
根据实体类生成表结构SQL: PM> Enable-Migrations -ProjectName Domain -StartUpProjectName Handler -Force PM> ...
C#实体类生成XML与XML Schema文档
一.实体类生成XML private void CreateXML() { Type[] objType = DBEntityRegst(); foreach (var item in objType ...
无线网络实体图生成工具airgraph-ng
无线网络实体图生成工具airgraph-ng airgraph-ng是aircrack-ng套件提供的一个图表生成工具.该工具可以根据airodump工具生成的CSV文件绘制PNG格式的图.绘制的 ...
随机推荐
thinkphp3.2跨控制器调用其他模块的方法
thinphp中前台后台都有互相调用方法,这样可以省去重复内容. 1 2 $hello = new \Admin\Common\Fun\hello(); $hello->hehe(); 调用其他 ...
Selenium_Selenium WebDriver 中鼠标和键盘事件分析及扩展
在使用 Selenium WebDriver 做自动化测试的时候,会经常模拟鼠标和键盘的一些行为.比如使用鼠标单击.双击.右击.拖拽等动作:或者键盘输入.快捷键使用.组合键使用等模拟键盘的操作.在 W ...
【转】 linux下的g++编译器安装
再debian下直接apt-get install gcc g++就可以了.按照类似的逻辑,再Fedora下yum install gcc g++ 报告无法找到g++包. 查了一下,原来这个包的名字叫 ...
怎么查看windows2003中隐藏用户
在命令模式下删除1.你在MS-dos下先输入net user 看有那些用户, 注意第一步看不出隐藏的用户 2.然后在输入net localgroup administrators 或者 net loc ...
转:随机函数 C++中rand()函数的用法
转自:http://blog.163.com/wujiaxing009@126/blog/static/719883992011113011359154/ 一.C++中不能使用random()函数 ...
Dropping tests(01分数规划)
Dropping tests Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 8176 Accepted: 2862 De ...
oracle ebs应用产品安全性-数据访问权限集
定义 数据访问权限集是一个重要的.必须设定的系统配置文件选项.对具有相同科目表.日历和期间类型的分类帐及其所有平衡段值或管理段值的定义读写权限,系统管理员将其分配至不同的责任以控制不同的责任对分类帐数 ...
*args **kwargs
-------------------------------[day10作业及默写]----------------------------- ...