`

谈一谈在工作过程中搜集的.NET小工具小程序 数据库脚本工具 VS2010/2012风格的界面框架

阅读更多
原帖地址:http://www.cnblogs.com/JamesLi2015/archive/2013/05/23/3094294.html

工作中遇到的问题,经常会在网络上搜集一些相关的内容,以此扩展以解决相同性质的问题,StackOverflow,CodeProject,CodPlex是我经常查找内容的网站。以下分享我找到的一些比较有典型意义的程序,列举工作中中可以能会遇到的场景和解决方法。

SQL Server Runner

网址:http://www.codeproject.com/Articles/22882/SQL-Server-Runner-Part-1 

分类: 数据库实用工具

工作中经常会遇到,新增表或新增字段,像下面的SQL语句片段这样

IF NOT EXISTS(SELECT C.NAME FROM DBO.SYSCOLUMNS C, DBO.SYSOBJECTS O WHERE O.ID = C.ID AND  O.NAME = 'PRSBPN' AND  C.NAME = 'X')

BEGIN
Alter table [PRSBPN] add [Y_UOM] [nvarchar](4)
End
GO

<style type="text/css"><br/><br/><br/><br/>.csharpcode, .csharpcode pre<br/>{<br/>font-size: small;<br/>color: black;<br/>font-family: consolas, "Courier New", courier, monospace;<br/>background-color: #ffffff;<br/>/*white-space: pre;*/<br/>}<br/>.csharpcode pre { margin: 0em; }<br/>.csharpcode .rem { color: #008000; }<br/>.csharpcode .kwrd { color: #0000ff; }<br/>.csharpcode .str { color: #006080; }<br/>.csharpcode .op { color: #0000c0; }<br/>.csharpcode .preproc { color: #cc6633; }<br/>.csharpcode .asp { background-color: #ffff00; }<br/>.csharpcode .html { color: #800000; }<br/>.csharpcode .attr { color: #ff0000; }<br/>.csharpcode .alt <br/>{<br/>background-color: #f4f4f4;<br/>width: 100%;<br/>margin: 0em;<br/>}<br/>.csharpcode .lnum { color: #606060; }</style>在自己的电脑上,可以用SQL Server Management Studio的Table Designer来设计,但是到了客户那边,不太可能有机会启动表设计器来添加字段,于是需要一个工具,把自己生成的字段变成SQL语句,客户那边只需要运行一个SQL语句,即可完成添加表和字段的动作。

image



SQL Server Runner可以运行指定的目录中的SQL语句,这一点就可以满足我的需求。使用方法也很直观,打开数据库连接,选定数据库,选择要运行的SQL文件所在的目录,然后执行(Run Scripts)即可。额外的,SQL Server Runner可以把当前的数据库连接,SQL文件目录位置等信息保存起来(xml文件),下次有SQL更新时,把更新后的SQL语句拷贝到指定的目录中,再运行SQL Server Runner打开原来的项目文件,运行一次即可。



CodeProject中另有一个相同作用的功能的,Generating osql Batch Scripts,它争对指定的目录,生成一个OSQL的批处理文件,再通过运行这个批处理文件以达到更新数据库的目的。



image



可以这样调用它的源代码



OsqlScript oscript = new OsqlScript("C:\\scripts",
"C:\\scripts\\ExecuteScripts");
oscript.Server = "MyServer";
oscript.Database = "Northwind";
oscript.UseIntegratedSecurity = true;
oscript.UseReportFile = true;
oscript.ReportFile = "Report.txt";

//generate the file
oscript.Generate();


<style type="text/css"><br/><br/><br/><br/>.csharpcode, .csharpcode pre<br/>{<br/>font-size: small;<br/>color: black;<br/>font-family: consolas, "Courier New", courier, monospace;<br/>background-color: #ffffff;<br/>/*white-space: pre;*/<br/>}<br/>.csharpcode pre { margin: 0em; }<br/>.csharpcode .rem { color: #008000; }<br/>.csharpcode .kwrd { color: #0000ff; }<br/>.csharpcode .str { color: #006080; }<br/>.csharpcode .op { color: #0000c0; }<br/>.csharpcode .preproc { color: #cc6633; }<br/>.csharpcode .asp { background-color: #ffff00; }<br/>.csharpcode .html { color: #800000; }<br/>.csharpcode .attr { color: #ff0000; }<br/>.csharpcode .alt <br/>{<br/>background-color: #f4f4f4;<br/>width: 100%;<br/>margin: 0em;<br/>}<br/>.csharpcode .lnum { color: #606060; }</style>



VS 2010/2012 Look-like 界面框架



网址: http://www.codeproject.com/Articles/551885/How-to-create-a-VS-2012-like-application-Wide-IDE



分类:界面框架



经常会做一点小工具,小源码,不可避免的要选择一些界面框架来完成任务。VC++ 6时,Document/View文档/视图结构,C# 2.0时,经常选MDI,再到后来,Tab MDI,再后来,Office Ribbon,界面框架在不停演化,使它看起来更美观,更有利于表达软件的功能。Visual Studio出来之后,有大量的软件模范其界面,用关键字Visual Studio Look-like搜索,可以找到相关内容,以实现模范Visual Studio界面风格的界面框架,这里介绍Wide IDE Framework。



先来上两张图,以看看它的效果



VS 2012 风格的界面



image







VS 2010风格的界面



image



效果实现的相当不错,Wide框架也引用到一 些第三方的开源类库,列举如下





如果想让你的工具界面看起来更漂亮一些,可以考虑试验一下这些开源的组件。License许可为GNU,



The GNU Lesser General Public License (LGPLv3)



 



Office 2007 ToolStrip Render   Office 2007 Blue风格的工具条



网址: http://www.codeproject.com/Articles/16666/Office-2007-ToolStrip-Renderer



分类: 界面框架



只需要三个cs文件,你的程序中的tool strip就可以变成Office 2007 Blue风格,蓝色的背景看起来有些专业。



上个图,我做的小工具界面,集成了一些常用的工具程序,重点是它的Office Blue风格。



image



使用它的方法也简单,以下二行代码即可:



ToolStripManager.Renderer = new Office2007Renderer();
statusStrip.Renderer = new Office2007Renderer();


 



Script SQL Server Data 把SQL Server数据变成SQL脚本



网址:http://www.codeproject.com/Articles/5598/Generating-INSERT-statements-in-SQL-Server



分类: 数据库实用工具



经常遇到一些问题,在客户的地方,因为有问题,而在我们这边没有问题。经过我折腾多次的经验,还是直接拿客户的数据库过来测试,这样靠谱一些,也容易定位问题。但有时候,客户的数据库很大,有100GB以上,即使用WinRAR压缩一下也有10G,刻成DVD,再经过快递公司送到开发部这边来,时间上要延迟一下,而且不是每次出问题,都要这样。一方面是要为程序建立跟踪机制,可以跟踪程序的数据输入输入,堆栈调用,另一方面,如果是数据库的问题,需要把有问题的数据打包,传回来试一下。整个数据库打包有点不现实,那就要只把可疑的数据打包,变成SQL传到开发部来。下面介绍的工具,就是实现这个目的。



image



<style type="text/css"><br/><br/><br/><br/>.csharpcode, .csharpcode pre<br/>{<br/>font-size: small;<br/>color: black;<br/>font-family: consolas, "Courier New", courier, monospace;<br/>background-color: #ffffff;<br/>/*white-space: pre;*/<br/>}<br/>.csharpcode pre { margin: 0em; }<br/>.csharpcode .rem { color: #008000; }<br/>.csharpcode .kwrd { color: #0000ff; }<br/>.csharpcode .str { color: #006080; }<br/>.csharpcode .op { color: #0000c0; }<br/>.csharpcode .preproc { color: #cc6633; }<br/>.csharpcode .asp { background-color: #ffff00; }<br/>.csharpcode .html { color: #800000; }<br/>.csharpcode .attr { color: #ff0000; }<br/>.csharpcode .alt <br/>{<br/>background-color: #f4f4f4;<br/>width: 100%;<br/>margin: 0em;<br/>}<br/>.csharpcode .lnum { color: #606060; }</style>



Table Insert Statements可以把存储在表中的数据,变成SQL语句文本文件。因为在很多场景中,这个功能实在太需要了,于是我做出一个增强版的Query Generator,以满足数据转移的需求。



image



与CodeProject中不同的地方,我可以择需要的数据行生成SQL语句,还可以选择字段。选择字段这个功能有相当重要的作用,比如数据表有一个字段是种子类型(identity),一般情况下是不能给种子类型插入数据,请看MSDN中的例子



USE AdventureWorks2008R2;
GO
-- Create tool table.
CREATE TABLE dbo.Tool(
ID INT IDENTITY NOT NULL PRIMARY KEY,
Name VARCHAR(40) NOT NULL
)
GO
-- Inserting values into products table.
INSERT INTO dbo.Tool(Name) VALUES ('Screwdriver')
INSERT INTO dbo.Tool(Name) VALUES ('Hammer')
INSERT INTO dbo.Tool(Name) VALUES ('Saw')
INSERT INTO dbo.Tool(Name) VALUES ('Shovel')
GO

-- Create a gap in the identity values.
DELETE dbo.Tool
WHERE Name = 'Saw'
GO

SELECT *
FROM dbo.Tool
GO

-- Try to insert an explicit ID value of 3;
-- should return a warning.
INSERT INTO dbo.Tool (ID, Name) VALUES (3, 'Garden shovel')
GO
-- SET IDENTITY_INSERT to ON.
SET IDENTITY_INSERT dbo.Tool ON
GO

-- Try to insert an explicit ID value of 3.
INSERT INTO dbo.Tool (ID, Name) VALUES (3, 'Garden shovel')
GO

SELECT *
FROM dbo.Tool
GO
-- Drop products table.
DROP TABLE dbo.Tool
GO


<style type="text/css"><br/><br/>.csharpcode, .csharpcode pre<br/>{<br/>font-size: small;<br/>color: black;<br/>font-family: consolas, "Courier New", courier, monospace;<br/>background-color: #ffffff;<br/>/*white-space: pre;*/<br/>}<br/>.csharpcode pre { margin: 0em; }<br/>.csharpcode .rem { color: #008000; }<br/>.csharpcode .kwrd { color: #0000ff; }<br/>.csharpcode .str { color: #006080; }<br/>.csharpcode .op { color: #0000c0; }<br/>.csharpcode .preproc { color: #cc6633; }<br/>.csharpcode .asp { background-color: #ffff00; }<br/>.csharpcode .html { color: #800000; }<br/>.csharpcode .attr { color: #ff0000; }<br/>.csharpcode .alt <br/>{<br/>background-color: #f4f4f4;<br/>width: 100%;<br/>margin: 0em;<br/>}<br/>.csharpcode .lnum { color: #606060; }</style>



脚本解释了当要为种子类型字段直接插入值时,要设计它为IDENTITY_INSERT为ON,之后如果要能让SQL Server自动插入种子值,又要设为OFF。



如果上在面的脚本生成工具中,我把种子类型的列去掉,不生成它的数据,问题就容易多了,根本不用考虑设置IDENTITY_INSERT。从设计意义上来说,IDENTITY类型常常用来维护数据,它是唯一的,对数据库资料的维护,数据间的对比,有重要的意义。ERP数据表中,主档表,日记帐表,每个表都给它加上这个类型,在ERP维护时,有很好的作用。

本文链接

分享到:
评论

相关推荐

    微信小程序+后台(.net)+sql server数据库

    在本项目中,"微信小程序+后台(.net)+sql server数据库"组合形成一个完整的开发环境,适合初学者了解和学习微信小程序的开发流程,以及后端服务与数据库的集成。 首先,微信小程序部分主要涉及以下几个知识点: ...

    ASP.NET(C#)小程序

    ASP.NET(C#)小程序是基于微软的.NET框架开发的Web应用程序。.NET框架是一个全面的开发平台,提供了构建、运行各种类型的应用程序所需的服务。C#是.NET框架的主要编程语言,以其面向对象的特性、丰富的库支持以及现代...

    将.NET安装程序部署到SQL Server数据库

    1. **编写自定义动作代码**:使用C#或VB.NET编写自定义动作代码,这些代码将在安装过程中执行特定任务,例如运行数据库脚本、创建数据库用户或调整权限。 2. **注册自定义动作**:在安装程序的XML配置文件中注册...

    【ASP.NET编程知识】浅谈ADO.NET数据库脚本.docx

    ADO.NET 是 .NET Framework 中用于访问关系型数据库的关键组件,它提供了一组全面的类库,使得开发者可以方便地在应用程序中操作数据。在 ASP.NET 编程中,ADO.NET 常常被用于实现数据库的连接、查询、更新和删除等...

    全能数据库管理工具Database .NET

    Database .NET是一款强大的数据库管理工具,专为IT专业人士设计,以提供高效、全面的数据管理和维护解决方案。这款软件支持多种数据库引擎,包括但不限于Oracle、MySQL、SQL Server、PostgreSQL、SQLite等,使得用户...

    .NET 代码生成工具

    .NET 代码生成工具是开发过程中的一种实用技术,它能够帮助程序员快速生成大量符合特定规则的源代码,大大节省了手动编写的时间,提高了开发效率。在.NET框架下,有许多这样的工具,它们利用模板、元数据或者数据库...

    .net 数据表生成实体类工具

    在实际开发中,这种工具的使用场景广泛,例如在快速构建数据驱动的应用程序、进行数据库迁移或重构时,能够避免大量重复的手动编码工作。同时,由于代码是由工具自动生成,因此可以保持一定的规范性和一致性,减少因...

    Asp.Net学生成绩管理系统(Sql数据库)

    【Asp.Net 学生成绩管理系统】是一种基于微软的Asp.Net技术开发的Web应用程序,主要用于管理和处理学生的成绩数据。该系统通常包含一系列功能模块,如学生信息管理、课程信息管理、成绩录入、成绩查询、成绩统计分析...

    VC#.NET数据库开发经典案例(一)

    最后,安装配置过程中,可能会涉及设置数据库连接字符串、部署数据库脚本以及配置应用程序以正确访问数据库。这部分知识对于确保应用在不同环境中正常运行至关重要。 总的来说,《VC#.NET数据库开发经典案例(一)》...

    SQL小工具 批量执行SQL脚本文件(WinForm开发 .Net 2.0)

    该工具主要支持两大功能: 1、批量执行SQL脚本文件; 2、文件拷贝操作。 其中,App.config为工具配置文件, ;DataBase = master;User ID=sa; password="/&gt; &lt;/appSettings&gt; &lt;/configuration&gt; 上述 ;DataBase ...

    .Net十大必备工具之一

    它们在.NET 框架中受到支持。 9. LINQPad LINQ是Language Integrated Query的简称,是集成在.NET编程语言的特性,是编程语言的一个组成部分。 10. NAnt NAnt是基于.NET的生成工具,与版本Visual Studio.NET 不同,...

    在线商城微信小程序源码.NET后台源码.zip

    在vs中打开 自动可以操作了 在线购物商城微信小程序前端和后台源码 源码描述: 一、源码特点 在线购物商城微信小程序前端和后台数据管理系统源码,使用.net开发,测试无Bug,感兴趣的欢迎下载 二、微信小程序功能 1...

    数据库 备份还原 脚本执行工具 源代码

    在IT行业中,尤其是在软件开发和运维过程中,这样的工具能够大大提高工作效率。以下是对"数据库备份还原脚本执行工具源代码"的详细解释: 1. **数据库备份**: - 数据库备份是为了防止数据丢失或损坏,通过复制...

    在.Net6中调用IronPython实现动态执行脚本

    在.NET 6中调用IronPython来实现动态执行脚本是一项强大的功能,它允许程序员在运行时编写和执行Python代码,极大地增强了应用的灵活性。IronPython是一个开源的Python实现,它能够无缝集成到.NET环境中,使得.NET...

    asp.net+access数据库小型网站

    ASP.NET是微软公司推出的一种用于构建Web应用程序的框架,它基于.NET Framework,提供了强大的服务器端编程模型。在本文中,我们将深入探讨如何利用ASP.NET结合Access数据库来创建一个简单的小型网站,如描述中的小...

    在SQL2005/2008数据库中调用.NET组件中的函数方法例子程序

    这个例子程序展示了如何在SQL数据库环境中调用C#编写的.NET组件中的函数方法。 首先,我们需要了解SQL Server中的CLR集成。SQL Server 2005开始引入了对.NET Framework的内置支持,允许开发者使用.NET语言(如C#或...

    ASP.NET MVC C# 优惠券领取微信小程序源码源代码2019完整版

    1、这是一个微信小程序对接淘宝的淘宝客api自助搜索优惠券领取程序,简单易学,有兴趣的欢迎下载 2、后台采用asp.netMvc框架开发、实现了调用阿里妈妈的淘宝客api接口 3、后台框架可支持拓展二次开发一套网站,...

    shell连接oracle数据库执行SQL工具脚本-支持select+inset+update

    shell连接oracle数据库工具脚本:支持select/insert/update/delete 部署位置:/root/sysmonitor db:数据库文件夹 dbconfig.properties:数据库配置文件, dbConnectTest.sh:连接测试文件 dbExecurteSQL.sh:...

    .NET平台下WEB应用程序的部署(安装数据库和自动配置)

    在.NET平台上开发Web应用程序是现代软件工程中常见的一部分。这个过程涉及到多个步骤,包括编码、测试、打包和部署。在本篇文章中,我们将重点关注在.NET环境下如何部署Web应用程序,特别是涉及数据库安装和自动配置...

    ASP.NET(VB.NET)防SQL注入脚本程序.rar

    ASP.NET (VB.NET) 防SQL注入脚本程序是一个重要的安全工具,旨在保护Web应用程序免受SQL注入攻击。SQL注入是一种常见的网络安全威胁,黑客通过输入恶意SQL代码来操纵数据库,获取敏感信息或破坏系统。在ASP.NET (VB...

Global site tag (gtag.js) - Google Analytics