连接到Sql server挂起con.Open()

时间:2017-02-16 13:16:59

标签: c# mysql database-connection connection-string

我试图学习如何从c#应用程序访问数据库。 我编写了这个简单的代码,用于访问我在freemysqlhosting.com上托管的MySql数据库。它是一个非常简单的Windows窗体应用程序:它包含一个名为“登录”的按钮。在按下时,应该输入具有密码的用户名' 1234'在文本框中名为' username' (应该是" sampleUser")。

这是我尝试过的代码:

private void login_Click(object sender, EventArgs e)
    {
        string connectionString = "server=sql11.freemysqlhosting.net;user id=*********;database=sql11158998;password=********;";
        using (SqlConnection con = new SqlConnection(connectionString))
        {
            SqlCommand cmd = new SqlCommand("SELECT * FROM users WHERE password = 'hrsidkpi'", con);
            con.Open();
            SqlDataReader reader = cmd.ExecuteReader();
            try
            {
                while (reader.Read())
                {
                    username.Text = "" + reader[0];
                }
            }
            finally
            {
                reader.Close();
            }
        }
    }

然而,当我按下按钮时,应用程序挂起。没有异常/错误被抛出。我把它放了几分钟,什么都没发生。 我知道连接正在工作,并且连接字符串中的详细信息都是正确的,因为我使用Visual Studio"数据源"对服务器进行了DataSet连接。

即使我删除了使用caluse中的所有代码,它也会冻结。如果我删除了con.Open(),它就不会挂起,所以我相信这就是造成这个问题的那一行。

我试图在互联网上寻找解决方案,发现很多人遇到同样的问题,但没有给出解决方案,或者给出的解决方案对我的情况没有影响。

非常感谢帮助,如果我做了任何错误,我会抱歉。

1 个答案:

答案 0 :(得分:-2)

以这种方式使用

    public string _ConexaoBcoDados = "Data Source=10.10.40.12\\DESENV;Initial Catalog=control_db;Uid=usr_desenv14; pwd=12345678;";

        sql.AppendLine("select login_rede,perfil_id from protocol_tb with(nolock) ");

        using (var conn = new SqlConnection(_ConexaoBcoDados))
        {
            var cmd = new SqlCommand(sql.ToString(), conn);
            conn.Open();
            using (var reader = cmd.ExecuteReader(CommandBehavior.CloseConnection))
            {
                while (reader.Read())
                {
                    valores = new string[] { reader["login_rede"].ToString(), reader["perfil_id"].ToString() };
                }
            }
        }