假设:我有一个程序中用到名字叫DB1的数据库,而要用我这个软件的客户机器上已经安装了sql server 2000。
现在我想要的是如何部署应用程序,使得我的这个程序能够在安装的时候就能自动在sql server中新建一个名为DB1的数据库,并且自动获得连接这个数据库的连接字符串,并将这个字符串填到App.Config文件中?

解决方案 »

  1.   

    建立数据库首先你要连接上这台机器的数据库服务器,处理连接字符串,有dbo权限的情况下运行Create DataBase的SQL语句就可以这应该是安装程序的制作吧
      

  2.   

    是啊,部署就是安装程序的制作,就是如何通过Installer类来实现,不知道哪位有这方面的现成代码可供参考?
      

  3.   

    private const string SQL_NAME="sql.sql";private string sqlPath = string.Empty;
    private string serverConn = string.Empty; ServiceController sqlSer; private void steupStart()
    {
    string desPath=string.Empty;
    desPath = Directory.GetCurrentDirectory();
    sqlPath = desPath+"\\"+SQL_NAME; sqlSer = new ServiceController("MSSQLSERVER"); 
    //如果服务没有在运行中,则运行 
    if ( sqlSer.Status == ServiceControllerStatus.Stopped ) 

    sqlSer.Start(); 

    else if( sqlSer.Status == ServiceControllerStatus.Paused ) 

    sqlSer.Continue(); 
    }
    sqlSer.Dispose(); 
    while( true ) 

    sqlSer = new ServiceController("MSSQLSERVER"); 
    if( sqlSer.Status.Equals(ServiceControllerStatus.Running) )
    {
    sqlSer.Dispose(); 
    break; 
    }
    sqlSer.Dispose(); 
    }
    //检测用户名及密码是否正确 
    SqlConnection conn = new SqlConnection( "Server=" + txtServer.Text.Trim() + ";User id = " + txtUser.Text.Trim() + ";password =" + txtPass.Text.Trim() ); 
    try 

    conn.Open(); 
    conn.Close(); 
    }
    catch(Exception ex) 

    MessageBox.Show("错误的用户名或密码" + ex.Message,"提示",MessageBoxButtons.OK,MessageBoxIcon.Warning);
    Application.Exit();
    return;
    }
    //起用进程
    Process sqlpro = new Process(); 
    //设置进程路径 
    sqlpro.StartInfo.FileName = desPath+"\\osql.exe";//string.Format("{0}osql.exe",desPath); 
    //参数 
    sqlpro.StartInfo.Arguments = String.Format("-S {0} -U {1} -P {2} -i \"{3}\"",txtServer.Text.Trim(),txtUser.Text.Trim(),txtPass.Text.Trim(),sqlPath); 
    sqlpro.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; 

    sqlpro.Start(); 
    sqlpro.WaitForExit(); 
    sqlpro.Close();
    this.lb.Cursor = System.Windows.Forms.Cursors.Default;
    MessageBox.Show("数据安装成功!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
    //steupData.Abort();
                Application.Exit();
    } public static string GetMachineName()
    {
    RegistryKey CompName = Registry.LocalMachine ;
    CompName = CompName.OpenSubKey("Software\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon");
    return CompName.GetValue("AltDefaultDomainName").ToString();
    }这个是执行你数据库脚本的代码。你自己改改。
    sql.sql是你数据库的脚本
      

  4.   

    地區:北京
    年限:2年
    技術:.Net BS开发
    工資:avg>>5K + 福利,几乎不加班,工作开心,心情愉快。
    公司性質:汽车门户网站。 PS: 透露点消息,我们公司正在招.net BS开发人员,如果哪位同仁想换工作,是一个不错的机会选择,加[email protected] 说应聘即可!
      

  5.   

    需要两个连接字符串一个是Master的,用于建库,就是Create DataBase然后就是你的数据库的连接字符串,建立表、索引、视图……等一系列的对象,然后导入数据得到第二个字符串后,使用XML的相关代码就可以写入APP.CONDFIG了
      

  6.   

    给我一个email,我给你发一个文档
      

  7.   

    楼上的兄弟,[email protected],谢谢兄弟了!