zoukankan      html  css  js  c++  java
  • 安装程序自动安装数据库

    添加新项中添加安装程序类

    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 调用后添加任何初始化
            }


            
    Component Designer generated code

            
    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
                
    {
                    
                }

            }

            

        }

    }

  • 相关阅读:
    如何处理前端异常监控?
    【效果】使用canvas rotate实现一个旋转的矩形
    小tips:微信小程序登录后返回登录前的页面继续操作(保留参数)
    nginx的常用配置
    vue-router的History 模式常用的三种配置方式(去掉地址栏中的#号)
    web前端常用的五种方式搭建本地静态html页面服务器
    小tips:nodejs请求接口超时使用中间件connect-timeout实现自动超时机制
    小tips:tomcat下JSP页面引用css、js等资源路径404问题
    原生JavaScript实现一个简单的Promise构造函数示例
    canvas图片旋转扩展出原生JS实现移动端横竖屏手写签名示例
  • 原文地址:https://www.cnblogs.com/ghd258/p/262046.html
Copyright © 2011-2022 走看看