我试图学习如何从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(),它就不会挂起,所以我相信这就是造成这个问题的那一行。
我试图在互联网上寻找解决方案,发现很多人遇到同样的问题,但没有给出解决方案,或者给出的解决方案对我的情况没有影响。
非常感谢帮助,如果我做了任何错误,我会抱歉。
答案 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() };
}
}
}