Приложение C # wpf с сервером sql работает только на моем компьютере - PullRequest
0 голосов
/ 31 мая 2018

У меня есть приложение wpf с SQL Server Express, оно отлично работает на моем компьютере, но на другом компьютере оно не работает, я использую Entity Framework, я сделал метод, чтобы получить имя сервера SQL Server иимя экземпляра и создание базы данных, я также сделал метод для создания таблиц, если он не существует, и я делаю вставку с логином и паролем по умолчанию для доступа пользователя к sisitema.

Моя строка подключения

  <connectionStrings>
<add name="BarberSystem.Properties.Settings.BancoTesteConnectionString" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=BARBER_DATABASE;Integrated Security=True" providerName="System.Data.SqlClient" />
<add name="BARBER_DATABASE" connectionString="data source=.\SQLEXPRESS;initial catalog=BARBER_DATABASE;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" />

мои методы

    public string ConnectionString { get; protected set; }
    public SqlServer(string connectionString) {
        ConnectionString = connectionString;
    }

    public static void createIfNotExists(string connectionString) {
        new SqlServer(connectionString).createIfNotExists();
    }

    public void createIfNotExists() {
        try {
            var connectionStringBuilder = new SqlConnectionStringBuilder(ConnectionString);
            var databaseName = connectionStringBuilder.InitialCatalog;
            connectionStringBuilder.InitialCatalog = "master";
            using (var connection = new SqlConnection(connectionStringBuilder.ToString())) {
                connection.Open();
                using (var cmd = connection.CreateCommand()) {
                    cmd.CommandText = string.Format("select * from master.dbo.sysdatabases where name='{0}'", databaseName);
                    using (var reader = cmd.ExecuteReader()) {
                        if (reader.HasRows) {
                            return;
                        }
                        reader.Close();
                        cmd.CommandText = string.Format("CREATE DATABASE {0}", databaseName);
                        cmd.ExecuteNonQuery();
                    }
                }
            }
        }
        catch (Exception e) {
            Log.logException(e);
            Log.logMessage(e.Message);
        }

    }

 public static string getServer(){
        string servidor = string.Empty;
        System.Data.Sql.SqlDataSourceEnumerator instancia = System.Data.Sql.SqlDataSourceEnumerator.Instance;
        System.Data.DataTable dados = instancia.GetDataSources();
        foreach (DataRow item in dados.Rows) {
            servidor = item["ServerName"].ToString();
        }
        return servidor;
    }

   public static string getInstance() {
        string instancia = string.Empty;
        System.Data.Sql.SqlDataSourceEnumerator instance = System.Data.Sql.SqlDataSourceEnumerator.Instance;
        System.Data.DataTable dados = instance.GetDataSources();
        foreach (DataRow item in dados.Rows) {
            instancia = item["InstanceName"].ToString();
        }
        return instancia;
    }

1 Ответ

0 голосов
/ 31 мая 2018

Проверьте брандмауэр. Необходимо разрешить подключение к C: \ Program Files \ Microsoft SQL Server \ MSSQL12.SQLEXPRESS2014 \ MSSQL \ Binn \ sqlservr.exe

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...