从C#代码与SQL Server 2014 Express的连接不起作用,无法打开连接

时间:2016-03-23 08:23:38

标签: c# sql-server wpf sql-server-express

我正在使用C#在WPF中创建一个客户端,我需要在客户端(平板电脑表面)上安装它。也就是说,我安装了SQL Server 2014 Express版,只是为了获取实例,我已经从这里下载了:

https://www.microsoft.com/en-US/download/details.aspx?id=42299

我明白了:

  

Express 64BIT \ SQLEXPR_x64_ENU.exe

我安装了一切,当然我没有SQL Server界面的管理,但是我无法创建db,这是我的错误:

  

发生与网络相关或特定于实例的错误   建立与SQL Server的连接。找不到服务器或   无法访问。验证实例名称是否正确   SQL Server配置为允许远程连接。 (提供者:命名   管道提供程序,错误:40 - 无法打开与SQL Server的连接

这是我的连接字符串(从常量文件中获取):

  

Server = SQLEXPRESS; Database = master; Integrated security = true;

这是我的代码:

 public void CreateDatabase(String PID)
        {
            String connection = Constants.localServerConnectionSQL.LocalServerConnectionSQLName;
            SqlConnection Connection = new SqlConnection();
            Connection = new SqlConnection(connection);
            Connection.Open();

            string Path = Environment.GetEnvironmentVariable("LocalAppData") + @"\CDA\UserDatabase\" + PID.ToString();
            log.Info("DBCreationScripts: Path DB: " + Path.ToString());

            String str = "CREATE DATABASE [" + PID + "] ON PRIMARY " +
           "(NAME = MyDatabase_Data, " +
           "FILENAME = '" + Path + ".mdf', " +
           "SIZE = 5MB, MAXSIZE = 10MB, FILEGROWTH = 10%) " +
           "LOG ON (NAME = [" + PID + "Log_Log], " +
           "FILENAME = '"+Path+"Log.ldf', " +
           "SIZE = 1MB, " +
           "MAXSIZE = 5MB, " +
           "FILEGROWTH = 10%)";

            log.Info("DBCreationScripts: Comando di creazione DB: " + str);


            try
            {
                SqlCommand myCommand = new SqlCommand(str, Connection);
                log.Info("DBCreationScripts: Lancio il comando di creazione database");
                myCommand.ExecuteNonQuery();
            }
            catch (System.Exception ex)
            {
                log.Info("DBCreationScripts: Eccezione nel comando di creazione database -  Message: " + ex.Message);
                throw ex;
            }
        }

问题是它无法打开连接,实例是SQLEXPRESS,但不明白为什么同事不是。 E'我可以配置错误吗?

SQL服务都是活动的。

提示?

1 个答案:

答案 0 :(得分:0)

引用SQL Server实例的正确方法是Server Address\Instance Name,例如MyServer\SQLExpress.\SQLEXPRESS127.0.0.1\SQLEXPRESS

如果没有反斜杠,文本将被解释为计算机名称。具有Server=SQLEXPRESS的连接字符串将尝试连接到名为SQLEXPRESS的服务器。