【发布时间】:2017-07-05 15:09:22
【问题描述】:
我正在尝试学习如何从 C# 应用程序访问数据库。 我编写了这个简单的代码来访问我在 freemysqlhosting.com 上托管的 MySql 数据库。它是一个非常简单的 Windows 窗体应用程序:它包含一个名为“登录”的按钮,按下该按钮后,应将密码为“1234”的用户名放在名为“用户名”的文本框中(应为“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 连接。
即使我删除了 using caluse 中的所有代码,它也会冻结。如果我删除 con.Open() 它不会挂起,所以我相信这是导致问题的行。
我尝试在网上寻找解决方案,发现有不少人有同样的问题,但没有给出解决方案,或者给出的解决方案对我的情况没有影响。
非常感谢您的帮助,如果我犯了英文错误,我们深表歉意。
【问题讨论】:
-
数据库服务器、名称和密码都在您发布的代码中。我建议在公共论坛上删除它。
-
这个数据库是我为测试而制作的免费数据库。如果有人损坏它,我可以创建一个新的。我更喜欢尽可能轻松地帮助我,不会泄露任何私人信息。不过还是谢谢。
-
您连接的主机名表示它是 MySQL 托管,但您尝试连接 MSSQL 详细信息的事实可能是这里的问题...
-
@RobAston:删除这里并没有多大帮助,因为有修订历史记录
-
MSSQL 详细信息是什么意思?在连接字符串中?我使用 connectionstrings.com 来获取我需要的连接字符串。
标签: c# mysql database-connection connection-string