SQL Строка подключения к серверу в формате Trusted Connection не работает - PullRequest
0 голосов
/ 07 января 2020

в первый раз, используя sql с C#, и я, кажется, наталкиваюсь на нерушимую стену. Я пытаюсь подключиться к своей базе данных, которая находится на другом сервере в том же домене. Это все в приложении winform. Кроме того, учетная запись windows, которую я использую для запуска этого приложения winform, уже имеет разрешения на чтение и запись в базу данных sql (та же учетная запись домена). Я установил строку подключения в моем app.config следующим образом, следуя совету connectionstrings.com

<connectionStrings>
    <add name="my_db" connectionString="Server=10.xx.xx.xx;Database=my_db;Trusted_Connection=True;" providerName="System.Data.SqlClient" />
  </connectionStrings>

У меня есть следующий метод в Helper.cs, где я устанавливаю строку подключения из файла конфигурации .

public static string CnnVal(string name)
    {
        return ConfigurationManager.ConnectionStrings[name].ConnectionString;
    }

Наконец, у меня есть следующий метод в своем собственном классе, DbConnect.cs, и этот метод вызывается, когда я нажимаю кнопку в форме.

public void TestConnection()
    {
        try
        {
            using (var connection = new SqlConnection(Helper.CnnVal("my_db")))
            {
                var query = "Select 1";
                System.Diagnostics.Debug.WriteLine($"Executing {query}");

                var command = new SqlCommand(query, connection);
                System.Diagnostics.Debug.WriteLine($"successful connection");

                command.ExecuteScalar();
                System.Diagnostics.Debug.WriteLine($"Successful query");
            }
        }
        catch (Exception ex)
        {
            System.Diagnostics.Debug.WriteLine($"failure {ex.Message}");
        }
    }

I установить точки останова для "var command" и "command.ExecuteScalar ();" линий и, глядя на мою вкладку Watch в Visual Studio, я вижу, что мое соединение не открыто, и это приводит к исключению InvalidOperationException от SqlCommand. Я не уверен, почему это происходит. Сегодня утром я использовал sql помощник по миграции сервера, чтобы перенести сервер с mysql на sql, и тогда все мои данные работали (windows auth, ip, имя базы данных). Что может быть выбросом здесь? Нужно ли указывать номер порта в строке подключения? Я использую порт по умолчанию 1433. Любая помощь будет оценена. Спасибо

...