в первый раз, используя 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. Любая помощь будет оценена. Спасибо