在.NET程序安装包中附带 SQL SERVER数据库安装功能

转载 2006年06月15日 15:54:00

一、        安装文件夹中添加数据库安装程序dbInstall.dll以及建数据库脚本data.sqldbInstall是一个自己编写的DLL,代码见附录。

二、        添加自定义功能。

方法:选定安装项目,鼠标右键,弹出快捷菜单,选视图-自定义操作。也可以直接点“解决方案资源管理器”上部的快捷图标。

进入“自定义操作”视图后,在“安装”目录下添加自定义操作,对应之前添加的dbInstall,命名为“安装数据库”。编辑属性,

CustomerActionData

/targetdir=[TARGETDIR] /dbfile="data.sql"

这是传递给数据库安装程序dbInstall.dll的参数。

附录:

dbInstall.dll

这是一个Windows应用程序。主要由两部分组成。

1、信息采集界面部分(dbpara.cs),采集必要的数据库安装信息,如下(不知道为什么,无法上传图片):

服务器               默认为(local)
数据库管理员帐户     默认为sa
数据库管理员密码
待安装数据库名称     自己填写

2、数据库安装部分(组件类dbInstall.cs

public override void Install(System.Collections.IDictionary stateSaver)

{

     base.Install(stateSaver);

 

     string dbFile = this.Context.Parameters["dbfile"];

     if( dbFile == null || this.Context.Parameters["installstyle"] == null )

     {

         return;

     }

 

     //创建数据库

     CREATEDB:

     //激活信息采集界面

     dbInstall.FrmDbpara dbpara = new dbInstall.FrmDbpara();

     if( dbpara.ShowDialog() == DialogResult.Cancel )

     {

         throw(new InstallException("安装失败。"));

     }

     string server = dbpara.Server;//服务器

     string user = dbpara.User;    //数据库管理员帐号,如sa

     string pwd = dbpara.Pwd;      //数据库管理员帐号密码

     string db = dbpara.Db;        //待建立的数据库名

     dbpara.Dispose();

//开始安装数据库

     string strConn = String.Format("data source={0};user id={1};password={2};persist security info=false;packet size=4096", server,user,pwd);

     string strCreateDB = String.Format("CREATE DATABASE {0} ON (NAME={0}_data,FILENAME=/'{1}data//{0}_data.mdf/') LOG ON (NAME={0}_log,FILENAME=/'{1}data//{0}_log.ldf/')",db,this.Context.Parameters["targetdir"]);

     try

     {

         ExecuteSql(strConn, "master", strCreateDB);

         System.Diagnostics.Process sqlProcess = new System.Diagnostics.Process();

         sqlProcess.StartInfo.FileName = "osql.exe";

         sqlProcess.StartInfo.Arguments = String.Format(" -U {0} -P {1} -d {2} -i {3}" + dbFile,user,pwd,db,this.Context.Parameters["targetdir"]);

         sqlProcess.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;

         sqlProcess.Start();

         sqlProcess.WaitForExit();

         sqlProcess.Close();

         //把数据库脚本文件删掉

         System.IO.FileInfo fileSql = new System.IO.FileInfo(String.Format("{0}" + dbFile, this.Context.Parameters["targetdir"]));

         if( fileSql.Exists )

         {

              fileSql.Delete();

         }

     }

     catch( Exception ex )

     {

         switch( MessageBox.Show(ex.Message,"错误",MessageBoxButtons.AbortRetryIgnore,MessageBoxIcon.Exclamation) )

         {

              case DialogResult.Retry:

                   goto CREATEDB;

              case DialogResult.Abort:

                   throw(new InstallException("安装失败。"));

              case DialogResult.Ignore:

                   break;

              default:

                   throw(new InstallException(ex.Message + "/n安装失败。"));

         }

     }

 

}

 

/// <summary>

/// 执行SQL

/// </summary>

/// <param name="strConn"></param>

/// <param name="dbname"></param>

/// <param name="sql"></param>

private void ExecuteSql(string strConn,string dbname,string sql)

{

     SqlConnection conn = new SqlConnection(strConn);

     SqlCommand cmd = new SqlCommand(sql,conn);

     cmd.Connection.Open();

     cmd.Connection.ChangeDatabase(dbname);

     try

     {

         cmd.ExecuteNonQuery();

     }

     catch(Exception ex)

     {

         MessageBox.Show(ex.Message);

     }

     finally

     {

         conn.Close();

     }

}


在.NET程序安装包中附带 SQL SERVER数据库安装功能

在.NET程序安装包中附带 SQL SERVER数据库安装功能左直拳一、        安装文件夹中添加数据库安装程序dbInstall.dll以及建数据库脚本data.sql。dbInstall是一...
  • leftfist
  • leftfist
  • 2006年05月13日 19:13
  • 2285

c# 打包程序中自动附加安装SQL Server数据库

1、创建安装项目“Setup”安装项目 在“文件”菜单上指向“添加项目”,然后选择“新建项目”。 在“添加新项目”对话框中,选择“项目类型”窗格中的“安装和部署项目”,然后选择“模板”窗格中的“安...
  • MrTraum
  • MrTraum
  • 2015年01月16日 14:56
  • 1916

如何安装SQL Server 2008数据库(带完整图解)

这几天因为需要,一直想安装sql server 2008来作为Web后台的数据库进行些实验,但总是没有时间,今天终于有时间了,便安装了SQL Server 2008,以下是我的安装的步骤,希望对于...
  • DD_lemon
  • DD_lemon
  • 2016年01月05日 23:17
  • 7940

SQL Server实现CLR步骤及其需要配置注意的问题(转)

介绍 我们一起来做个示例,在.NET中新建一个类,并在这个类里新建一个方法,然后在SQL Server中调用这个方法。按照微软所述,通过宿主 Microsoft .NET Framework 2....
  • ljh56789
  • ljh56789
  • 2014年08月06日 09:12
  • 5022

安装SQL Server 2008 哪些功能需要选择?

  • txx9010
  • txx9010
  • 2016年05月16日 18:17
  • 6426

NistNet 配置安装

NistNet安装配置 安装准备:下载 nistnet.2.0.12b.tar.gz    http://snad.ncsl.nist.gov/nistnet/      nistnet.2.0.12...
  • tryscan
  • tryscan
  • 2008年02月02日 09:29
  • 5688

SQL Server 2012安装——.net framework 3.5离线安装

前言     电脑用着一直很不舒服,所以就决定对电脑重新配置一番,在装数据库这里,可谓是屡装屡败。自己感觉太麻烦了,于是每次数据库装失败后,就重装系统,然后配置上网文档,这样一来,弄得自己挺恶心,这...
  • zlt995768025
  • zlt995768025
  • 2016年01月17日 16:14
  • 3180

技术笔记5_Asp.net:如何在vs环境下调试sqlserver中的存储过程

如果存储过程发生了异常,而返回的异常的消息又不能明确显示错误的原因,这时需要能够直接调试存储过程,最好能在vs中像调试普通代码一样,(默认情形下是无法的进行的),需要通过下面方法打开: 1.在wep...
  • polaris11767
  • polaris11767
  • 2014年12月06日 20:42
  • 726

数据库系列~NoSQL数据库~MongoDB数据库安装

官方网站:http://www.mongodb.com 根据对应的平台选择下载安装【windows/linus/mac】 windows下安装: 1.双击下载的软件安装包,进行常...
  • xueyulanmo
  • xueyulanmo
  • 2017年02月26日 00:41
  • 306

Sql Server 2005 64位安装包

sql server 2005 64位安装包下载
  • Happy__EveryDay
  • Happy__EveryDay
  • 2016年08月30日 10:03
  • 1225
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在.NET程序安装包中附带 SQL SERVER数据库安装功能
举报原因:
原因补充:

(最多只允许输入30个字)