C#安装项目文件,自动读取参数的安装类(自动安装SQL SERVER数据库)

原创 2006年05月17日 17:28:00

using System;
using System.Collections;
using System.ComponentModel;
using System.Configuration.Install;
using System.IO;
using System.Data.SqlClient;
using System.Reflection;


namespace DBCustomAction
{
 /// <summary>
 /// DBCustomAction 的摘要说明。
 /// </summary>
 [RunInstaller(true)]
 public class DBCustomAction : System.Configuration.Install.Installer
 {
  /// <summary>
  /// 必需的设计器变量。
  /// </summary>
  private System.ComponentModel.Container components = null;
  private string strPass = "";

  public DBCustomAction()
  {
   // 该调用是设计器所必需的。
   InitializeComponent();

   // TODO: 在 InitComponent 调用后添加任何初始化
  }

  #region Component Designer generated code
  /// <summary>
  /// 设计器支持所需的方法 - 不要使用代码编辑器修改
  /// 此方法的内容。
  /// </summary>
  private void InitializeComponent()
  {

  }
  #endregion

  public override void Install(System.Collections.IDictionary stateSaver)
  {
  
   //入口
   strPass = this.Context.Parameters["strPass"];
   AddDBTable("RequestSys");//RequestSys为数据库名称
   


  }
  private string  GetSql(string strName)
  {
   try
   {
    //' Get the current assembly.
    Assembly Asm = Assembly.GetExecutingAssembly();
    // Resources are named using a fully qualified name
    
    Stream strm  = Asm.GetManifestResourceStream(Asm.GetName().Name + "." + strName);
    
    //Read the contents of the embedded file.
    StreamReader reader= new StreamReader(strm);//,System.Text.Encoding.Unicode);
   
    
    return reader.ReadToEnd();
   }
   catch
   {
    return null;
   }
                                  
  }
  private void ExecuteSql(string DatabaseName , string Sql)
  {

   SqlConnection sqlConnection1 = new SqlConnection("user id=sa;password="+strPass+";database=master;server=(local)") ;
   SqlCommand Command  = new SqlCommand(Sql, sqlConnection1);
   Command.Connection.Open();
   Command.Connection.ChangeDatabase(DatabaseName);
   
   try
   {
    Command.ExecuteNonQuery();
   }

   finally
   {
    // Finally, blocks are a great way to ensure that the connection
    Command.Connection.Close();
   }
  
  }
  protected void  AddDBTable(string strDBName )
  {
   try
   {
    //Create the database.
    ExecuteSql("master", "CREATE DATABASE " + strDBName);
    // Create the tables.
    ExecuteSql(strDBName, GetSql("sql.txt"));
   }
   catch
   {
    
   }
  }
  

 }
}

 

附:

自定义操作设置

CustomActionData

属性两个值以上设置方法如下: 

/strPass=[STRPASS] /edit2=[EDITC2]

参考

http://msdn2.microsoft.com/zh-tw/library/2w2fhwzz.aspx

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

ATM自动取款机终端系统(基于visual studio 2015与Sql server 2014平台的C#项目)

一、项目要求: 创建一个ATM自动取款机终端系统二、项目需求: 1.数据信息存储在sql server数据库之中 2.通过终端系统进行数据的操作三、项目实现: ...

C#通过反射来动态创建类对象并调用相关泛型函数(Excel数据自动导入到SQL Server数据库)

最近根据项目需求需要将Excel里面的表格自动到SQL Server数据库中,整个需求如下: (1)Excel表格有多个Sheet,每个Sheet的名称在SQL Server中有一张表名称与之对应 ...

c#写的sql Server数据库自动备份程序

这几天写了一个xp下安装sql Server 2005 express版本的数据库自动备份程序,大家看看若是有觉得不合理的地方欢迎指正 using System; using Syste...

C#项目打包,并自动安装SQL数据库

一).创建部署项目 1. 在“文件”菜单上指向“添加项目”,然后选择“新建项目”。 2. 在“添加新项目”对话框中,选择“项目类型”窗格中的“安装和部署项目”,然后选择“模板”窗格中的“安装...

[SQL Server] 数据库日志文件自动增长导致连接超时的分析

关键词:日志 自动增长 1、现象、问题描述        客户反映某客户端登陆不了,客户端程序日志显示“连接数据库超时”;检查对应的数据库服务器,日志显示“Autogrow of file '某数...

[SQL Server] 数据库日志文件自动增长导致连接超时的分析

转载链接: 1、现象、问题描述        客户反映某客户端登陆不了,客户端程序日志显示“连接数据库超时”;检查对应的数据库服务器,日志显示“Autogrow of file '某数据库...

[SQL Server] 数据库日志文件自动增长导致连接超时的分析

1、现象、问题描述        客户反映某客户端登陆不了,客户端程序日志显示“连接数据库超时”;检查对应的数据库服务器,日志显示“Autogrow of file '某数据库日志文件' in ...

[SQL Server] 数据库日志文件自动增长导致连接超时的分析

数据库日志文件自动增长导致连接超时的分析
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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