假设:我有一个程序中用到名字叫DB1的数据库,而要用我这个软件的客户机器上已经安装了sql server 2000。
现在我想要的是如何部署应用程序,使得我的这个程序能够在安装的时候就能自动在sql server中新建一个名为DB1的数据库,并且自动获得连接这个数据库的连接字符串,并将这个字符串填到App.Config文件中?
现在我想要的是如何部署应用程序,使得我的这个程序能够在安装的时候就能自动在sql server中新建一个名为DB1的数据库,并且自动获得连接这个数据库的连接字符串,并将这个字符串填到App.Config文件中?
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是你数据库的脚本
年限:2年
技術:.Net BS开发
工資:avg>>5K + 福利,几乎不加班,工作开心,心情愉快。
公司性質:汽车门户网站。 PS: 透露点消息,我们公司正在招.net BS开发人员,如果哪位同仁想换工作,是一个不错的机会选择,加[email protected] 说应聘即可!