VS程序打包安装好了怎么和数据库连接上呢?

解决方案 »

  1.   

    安装部署中添加界面进行数据连接字符串的配置,安装部署中添加自定义操作附加数据库或执行SQL语句生成数据库
    安装部署中install添加自定义操作
    设置文本框属性值
    如Context.Parameters["targetdir"]  
    private void ExecuteSql(string connString,string DatabaseName,string sql)
    {
    using(SqlConnection conn=new SqlConnection(connString))
    {
    SqlCommand cmd=new SqlCommand(sql,conn);
    conn.Open();
    cmd.Connection.ChangeDatabase(DatabaseName);
    cmd.ExecuteNonQuery();
    conn.Close();
    }
    }
    string connString=string.Format("server={0};user id={1};password={2}",this.Context.Parameters["server"],this.Context.Parameters["user"],this.Context.Parameters["pwd"]);//根据输入的数据库名称建立数据库
    ExecuteSql(connString,"master","create database "+this.Context.Parameters["dbname"]);//调用osql执行脚本
    string cmd=string.Format(" -S{0} -U{1} -P{2} -d{3} -i{4}db.sql",this.Context.Parameters["server"],this.Context.Parameters["user"],this.Context.Parameters["pwd"],this.Context.Parameters["dbname"],this.Context.Parameters["targetdir"]);
    System.Diagnostics.Process sqlProcess=new Process();
    sqlProcess.StartInfo.FileName="osql.exe";
    sqlProcess.StartInfo.Arguments=cmd;
    sqlProcess.StartInfo.WindowStyle=ProcessWindowStyle.Hidden;
    sqlProcess.Start();
    sqlProcess.WaitForExit();//等待执行
    sqlProcess.Close();
      

  2.   

    将你的数据库导出为SQL脚本 
    在安装文件时执行此脚本 还原数据库即可