PC6下载站

分类分类

.NET制作有DB安装功能的安装文件

关注+2010-02-14作者:

.NET制作有DB安装功能的安装文件:

  前段时间做一个项目,因为其中数据库有许多数据是初始化的数据, 为了便于部署.于是我在制作安装程序的时候加入了 DB install的功能.

  首先最好单独创建一个DB install 的Class Library的Project.

  Fileà NewàProjectàVisual C# à WindowsàClass Library

  然后创建一个class, 命名为DBInstall.cs. 下面就是如何在这个class 中实现DB"安装"的过程.

  首先需要将 DBInstall 继承 Installer class. 还需要加上[RunInstaller(true)]的attribute.

  继承

1[RunInstaller(true)]
2
3public partial class DBInstall : Installer
4

  此时图标会由变为, 说明这个class 已经成为了安装的组件了.

  然后就是 override Rollback, Uninstall, Install 三个方法:

  Override Install Method

 1    public override void Rollback(System.Collections.IDictionary savedState)
 2
 3    {
 4
 5      base.Rollback(savedState);
 6
 7    
 8
 9      if (MessageBox.Show("Do you want to remove exist databases during rollback?", "Confirm", MessageBoxButtons.YesNo)
10
11        == DialogResult.Yes)
12
13      {
14
15        string dbname = "XXX"; //XXX 代表数据库名称
16
17        try
18
19        {
20
21          ExecuteSql("master", string.Format("DROP DATABASE [{0}]", dbname));   //回滚的时候删除数据库文件
22
23        }
24
25        catch
26
27        {
28
29          MessageBox.Show(string.Format("Can not delete [{0}] database. Please delete it by yourself."), dbname);
30
31        }
32
33       
34
35      }
36
37    }
38
39
40
41    public override void Uninstall(System.Collections.IDictionary savedState)
42
43    {
44
45      base.Uninstall(savedState);
 

  前段时间做一个项目,因为其中数据库有许多数据是初始化的数据, 为了便于部署.于是我在制作安装程序的时候加入了 DB install的功能.

  首先最好单独创建一个DB install 的Class Library的Project.

  Fileà NewàProjectàVisual C# à WindowsàClass Library

  然后创建一个class, 命名为DBInstall.cs. 下面就是如何在这个class 中实现DB"安装"的过程.

  首先需要将 DBInstall 继承 Installer class. 还需要加上[RunInstaller(true)]的attribute.

  继承

1[RunInstaller(true)]
2
3public partial class DBInstall : Installer
4

  此时图标会由变为, 说明这个class 已经成为了安装的组件了.

  然后就是 override Rollback, Uninstall, Install 三个方法:

  Override Install Method

 1    public override void Rollback(System.Collections.IDictionary savedState)
 2
 3    {
 4
 5      base.Rollback(savedState);
 6
 7    
 8
 9      if (MessageBox.Show("Do you want to remove exist databases during rollback?", "Confirm", MessageBoxButtons.YesNo)
10
11        == DialogResult.Yes)
12
13      {
14
15        string dbname = "XXX"; //XXX 代表数据库名称
16
17        try
18
19        {
20
21          ExecuteSql("master", string.Format("DROP DATABASE [{0}]", dbname));   //回滚的时候删除数据库文件
22
23        }
24
25        catch
26
27        {
28
29          MessageBox.Show(string.Format("Can not delete [{0}] database. Please delete it by yourself."), dbname);
30
31        }
32
33       
34
35      }
36
37    }
38
39
40
41    public override void Uninstall(System.Collections.IDictionary savedState)
42
43    {
44
45      base.Uninstall(savedState);
 

展开全部

相关文章

更多+相同厂商

热门推荐

  • 最新排行
  • 最热排行
  • 评分最高
排行榜

    点击查看更多

      点击查看更多

        点击查看更多

        说两句网友评论

          我要评论...
          取消