第一次在 C# 中使用 sql,我似乎遇到了一堵牢不可破的墙。我正在尝试连接到我的数据库,该数据库位于同一域的不同服务器上。这一切都在一个 winform 应用程序中。此外,我用于运行此 winform 应用程序的 Windows 帐户已经具有对 sql 数据库的读写权限(相同的域帐户)。我按照 connectionstrings.com 的建议在 app.config 中设置了连接字符串,如下所示
<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}");
}
}
我在“var command”和“command.ExecuteScalar();”上设置断点 行,在 Visual Studio 中查看我的 Watch 选项卡时,我可以看到我的连接没有打开,这导致来自 SqlCommand 的 InvalidOperationException。我不确定为什么会这样。我今天早上使用 sql server 迁移助手将服务器从 mysql 迁移到 sql,然后我的信息都正常工作(windows auth、ip、数据库名称)。这里有什么异常值?我是否必须将端口号放在我的连接字符串中的某个地方?我正在使用默认的 1433 端口。任何帮助,将不胜感激。谢谢