0

第一次在 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 端口。任何帮助,将不胜感激。谢谢

4

0 回答 0