如何创建数据库并在安装过程中填充它

时间:2009-03-05 17:05:33

标签: asp.net sql-server deployment visual-studio-2005

我想在asp.net安装过程中找到一种创建和填充数据库的方法。

所以,我愿意做的是:

  1. 在设置期间创建数据库
  2. 使用一些初始数据(国家/地区代码或类似内容)填充数据库
  3. 在配置文件
  4. 中创建相应的连接字符串

    我使用的是.NET 3.5和Visual Studio 2005 ,数据库是SQL Server 2005.

    提前致谢。

4 个答案:

答案 0 :(得分:3)

如果您正在创建安装程序,我确信有一种方法可以在那里完成,但我并不是那么熟悉它。

否则,您可能会做以下事情。

  1. 在Global.asax中添加application_start处理程序,检查有效的连接字符串,如果不存在,继续执行第二步。
  2. 使用默认连接字符串
  3. 登录服务器
  4. 执行所需的脚本以创建所需的数据库和对象。
  5. 使用连接信息
  6. 更新web.config

    这里的关键是确定“默认”连接字符串是什么。可能是第二个配置值。

答案 1 :(得分:2)

通常,您需要使用SQL脚本来执行此操作。无论如何,我倾向于这样做,因为从长远来看,它使数据库的维护和版本化变得更加容易。

核心思想是,在运行安装程序后,您将有一个自定义操作来执行此脚本。执行设置的用户需要具有以下权限:

  • 创建数据库
  • 在新创建的数据库中创建表和其他数据库级对象
  • 填充数据

但是,您的脚本将负责所有这些。您将拥有CREATE DATABASE命令,相应的CREATE SCHEMACREATE TABLECREATE VIEW等命令,然后在构建架构后,使用相应的{{1}填充数据的语句。

我通常将其分解为多个脚本,但是YMMV:

  • 创建架构脚本
  • “通用脚本”(一个用于Web项目的INSERT,一个用于创建Enterprise Library日志表和过程)
  • 如有必要,创建存储过程脚本(在模式创建后执行)
  • 填充初始数据脚本

为了将来的维护,我创建了升级脚本,其中单个脚本通常处理整个升级过程。

编写脚本时,请务必在创建对象之前使用适当的安全检查(aspnet_regsql等)。而且我倾向于使我的交易也是如此。

祝你好运!

答案 2 :(得分:1)

好吧,实际上我在MSDN上找到了一个教程:Walkthrough: Using a Custom Action to Create a Database at Installation

我会用它并看看它是怎么回事,谢谢你的帮助,我会告诉你它是怎么回事。

答案 3 :(得分:1)

如果你可以使用Linq to Sql那么这很容易 只需将整个数据库导入Linq to Sql设计器即可。这将创建描述数据库中所有对象的对象,包括封装整个数据库设置的System.Data.Linq.DataContext派生类。

现在您可以调用DataContext.CreateDatabase()来创建数据库。

See here more information