利用数据库模版创建方便部署的.Net项目调试环境

本文以Petshop为示例,详细介绍了如何利用Visutal Studio .Net中的数据库模版将该项目的数据库设计放到项目的解决方案中,并借助该方法将整个Petshop项目的数据库从SQL SERVER快速移植到MSDE上。
注:本文并没有就Petshop本身的技术进行任何的讨论,仅仅只是利用它的数据库做为一个普通示范。Petshop网上宠物商店范例的源码下载地址为:http://www.gotdotnet.com/team/compare。

目录:
引言
创建数据库模版项目
生成创建脚本和存储过程
生成命令文件
将数据库移植到MSDE
总结
作者

引言:
SQL SERVER方便强大的查询,管理工具让它成为了我们开发.Net数据库应用的上上之选,甚至即使你并非开发基于SQL SERVER的应用,你也会喜欢利用它独有强大的查询分析器来帮助你完成项目。
但是使用SQL SERVER开发项目应用有一个不方便的地方,就是当需要将做了一半的项目转移到别的机器上的时候,假如你并不是很熟悉SQL SERVER你将会发现你几乎束手无策,因为SQL SERVER并不像ACCESS那样将整个数据库放在一个文件中,可以方便的放到你的项目文件夹中打包带走。你也许会说可以利用SQL SERVER企业管理器生成创建脚本,然后进行数据导出备份等等,虽然可行,但是总归是不太方便。
利用数据库模版项目,便能将你的数据库表创建脚本,数据文件以及存储过程同你的项目放在一起,这样,转移到任何地方都能很容易重新构建好调试程序所需要的数据库环境,并能在你的Visual Studio .Net集成调试环境中直接对脚本和存储过程进行修改。
下面将详细介绍如何为Petshop添加数据库模版项目,并将Petshop数据库的创建脚本,数据文件和存储过程导出到模版中同项目一起打包,然后导出到MSDE桌面数据引擎中。

创建数据库模版项目:
首先,我们需要先有一个安装好的Petshop项目(具体的安装事项和步骤请参考Petshop的说明文档),然后在Visual Studio .Net中打开它的项目文件,在"文件"菜单中选择"新建项目",在对话框中选择"其他项目"的"数据库项目",并在右侧的模版列表中选择"数据库项目",并选择"添入解决方案",名称和路径如下图所示:

点击确定后,出现数据连接对话框,选择Petshop数据库:

确定后,在解决方案中我们就可以看见为Petshop新创建的数据库模版项目,如下图所示:


生成创建脚本和存储过程:
选择左边的服务器资源管理器,右键点击Petshop的数据连接,选择"生成创建脚本",如下图所示:

在接下来的对话框中选择全部表和全部的存储过程:

保存路径选择数据库模版项目中的"Create Scripts":

如果没有什么意外情况发生的话,你的Create Scripts下已经生成了许多的SQL脚本文件。
然后在数据连接中按住Shift键一次选择所有的表,右键点击选择"导出数据":

数据同样放在"Create Scripts"下。

生成命令文件:
在项目管理器中选上数据库模版项目,然后在主菜单的"项目"中选择"生成命令文件",如下图所示:

如果需要导出数据则可以选择右下脚的"添加数据"按纽来选择那些表需要导出数据。点击确定后便可以看见在项目中生成了一个名为PetshopDB.cmd的命令文件。
到这里,我们就创建了一个完整的Petshop数据库模版项目,并能在Visual Studio .Net中方便的对脚本进行编辑修改。
接下来,我们将要把数据导入MSDE桌面数据库,然后将Petshop的数据库改为MSDE,模拟数据库移植过程。

将数据库移植到MSDE:
首先,使用SQL SERVER的查询分析器或者企业管理器在MSDE中创建一个名为petshop的数据库,在刚才生成的PetshopDB.cmd上点击右键,选择"运行":

在弹出的对话框中,填入MSDE的服务器及petshop数据库:

点击确定后,我们就可以看到数据库的创建和数据复制过程:

最后,我们打开MSDE中的petshop数据库,就能看见所有的数据表,存储过程和完整的数据。
好了,最后我们来测试一下成果,看看我们的Petshop是不是已经从SQL Server上移植到了MSDE上,我们修改一下Petshop的Web.Config文件中的数据连接字符串,如下图所示:

保存后运行程序,呵呵,我们又看见了那对熟悉的大鹦鹉,虽然这次它们是在MSDE上安的家,不过看上去还是那么可爱。

总结:
利用数据库模版项目,便能将你的数据库设计和数据从数据库独立出来,并能放在你的项目文件中,简化数据库的转移和分发过程,方便快速的移植和部署你的应用项目。
posted on 2006-02-19 13:58  皮皮虾的blog  阅读(200)  评论(0编辑  收藏  举报