为了账号安全,请及时绑定邮箱和手机立即绑定

C#与SQL2005数据部署安装问题

C#与SQL2005数据部署安装问题

小唯快跑啊 2018-12-06 18:59:01
在网站找到了实现方法,但是打包后的EXE文件无法安装数据库,小弟不才,敬请大侠指教! 我的实现代码: private void ExecuteSql(string conn, string DatabaseName, string Sql)        {            SqlConnection mySqlConnection = new SqlConnection(conn);            SqlCommand Command = new SqlCommand(Sql, mySqlConnection);            mySqlConnection.Open();            mySqlConnection.ChangeDatabase(DatabaseName);            try            {                Command.ExecuteNonQuery();            }            finally            {                //close Connection                  mySqlConnection.Close();            }        } public override void Install(System.Collections.IDictionary stateSaver)        {            base.Install(stateSaver);             // ------------------------建立数据库-------------------------------------------------             try            {                string connstr = String.Format("data source={0};user id={1};password={2};persist security info=false;packet size=4096", Context.Parameters["server"], Context.Parameters["user"], Context.Parameters["pwd"]);                //'根据输入的数据库名称建立数据库                  ExecuteSql(connstr, "master", "CREATE DATABASE " + Context.Parameters["dbname"]);                //'调用osql执行脚本                  Process sqlprocess = new System.Diagnostics.Process();                sqlprocess.StartInfo.FileName = "osql.exe ";                sqlprocess.StartInfo.Arguments = String.Format(" -U {0} -P {1} -d {2} -i {3}ACM618DeviceInfo.sql", Context.Parameters["user"], Context.Parameters["pwd"], Context.Parameters["dbname"], Context.Parameters["targetdir"]);                sqlprocess.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;                sqlprocess.Start();                sqlprocess.WaitForExit(); // '等待执行                sqlprocess.Close();                 //'删除脚本文件                FileInfo sqlfileinfo = new FileInfo(String.Format("{0}ACM618DeviceInfo.sql", Context.Parameters["targetdir"]));                 if (sqlfileinfo.Exists)                {                    sqlfileinfo.Delete();                }            }            catch (Exception ex)            {                throw ex;            }        } 安装程序时提示的错误是: 在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (provider: SQL 网络接口, error: 25 - 连接字符串无效) 请问我程序中写的是哪个字符串出问题了?? 我是刚刚注册的新手,分不多··给个意思···多多原谅!
查看完整描述

3 回答

?
慕后森

TA贡献1802条经验 获得超5个赞

将这个字串打出来复制到连接管理器中试一下

查看完整回答
反对 回复 2019-01-21
?
扬帆大鱼

TA贡献1799条经验 获得超9个赞

如果你的数据库不是SQL EXPRESS,就应该不是远程连接的问题

检查一下你的连接字符串的几个参数是否正确传递,是否有对应安装界面的文本框输入

查看完整回答
反对 回复 2019-01-21
  • 3 回答
  • 0 关注
  • 299 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信