65.9K
CodeProject 正在变化。 阅读更多。
Home

在安装.NET应用程序期间创建数据库 - 版本 2

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.02/5 (30投票s)

2005 年 8 月 31 日

3分钟阅读

viewsIcon

182664

downloadIcon

10588

此应用程序可用于在安装.NET应用程序期间创建数据库、表和存储过程。

引言

感谢您对我的上一篇文章的良好反馈。尽管本文的版本 1中建议的方法对于在安装期间创建数据库很有用,但如果有很多具有许多列、复杂的存储过程、触发器、关系和数据的大量表,则证明很麻烦。在这里,我将向您解释一种非常简单的方法来实现这一点。相信我,您只需要不到一行代码就可以实现这一点。

背景

我的客户过去常常使用测试数据测试应用程序。以前,每次我向他交付一个模块时,即使只是一个小小的更正,他也必须创建一个数据库并输入数据。所以我开发了这个解决方案,它安装了一个带有数据的数据库。

在这里,我们也将使用 SQL-DMO,但我们不会创建任何数据库、表或存储过程。相反,我们将只是以编程方式将数据库文件附加到目标服务器。因此,我们编写创建数据库及其对象代码的任务和时间将被节省。

众所周知,每当我们在 SQL Server 上创建一个数据库时,服务器上都会创建两个文件,即数据文件 (DBName_Data.mdf) 和日志文件 (DBName_Log.ldf)。 如果我们想将这些文件移动到另一台服务器上,只需将这些文件复制到另一台计算机上是不起作用的。 为了使其工作,我们必须将这些文件附加到服务器。 (在您的 SQL Server 企业管理器中,选择 服务器,选择 数据库,右键单击它,选择 所有任务,然后选择 附加数据库…)。

同样,要复制这些文件,您要么停止服务器,要么从服务器上分离特定的数据库。 (在您的 SQL Server 企业管理器中,选择 服务器,选择 数据库,选择特定的数据库并右键单击它,选择 所有任务,然后选择 分离数据库…)。

使用演示应用程序

演示应用程序提供了所需的工具提示,这将帮助您使用该应用程序。

使用源代码

大部分代码与版本 1 相同,因此我不会在这里重复。 您可以忽略创建数据库、表和存储过程的代码。

将数据文件附加到服务器

Install 按钮的 Click 事件中使用以下代码

/* The AttachDB method of server attaches your .mdf
 file to server  The syntax of AttachDB method is 
AttachDB(string DBName,string datafiles)where 'DBName'
 is name of your database and 'datafile' is nothing but
 your .mdf file including full path. You should be
 careful while mentioning the datafiles because SQL-DMO
 takes this parameter as multistring therefore if your file
 name has space then it will not read the file name.
 Hence put your file name in Square Brackets '[]' as below. */

srv.AttachDB(txtDBName.Text.Trim(), "[" + 
    Application.StartupPath+@"\Organization_Data.mdf]");

如何在安装项目中应用此应用程序

  1. 不要忘记在您的包中复制您的数据文件。将它们复制到您的应用程序文件夹中。按照以下步骤操作。
  2. 在解决方案资源管理器中选择安装项目。右键单击它。
  3. 选择 查看--文件系统编辑器。
  4. 在文件系统编辑器中,选择应用程序文件夹并右键单击它。
  5. 然后,选择 添加--文件。
  6. 现在,选择您的数据文件,然后单击 确定。
  7. 使用自定义操作将您的应用程序添加到安装项目的其余步骤与(版本 1)中的相同。

其他注意事项

上面的代码可能会产生一个错误,提示“接口 SQLDMO.NameList 的 QueryInterface 失败”。如果发生此类异常,则意味着服务器应使用最新的 Service Pack(SP 2 以上)进行更新。

© . All rights reserved.