例外情况说主机'XX'不允许连接到此MySQL服务器。我使用的是VB.Net,我有一个连接MySQL的Connect.vb类,如果不存在查询,它有一个创建数据库。
MySqlConnection conn = new MySqlConnection("server=localhost;uid=root;pwd=root;");
MySqlCommand pst = new MySqlCommand();
try
{
conn.Open();
pst.Connection = conn;
pst.CommandText = "CREATE DATABASE IF NOT EXISTS StocksManagerDB";
pst.ExecuteNonQuery();
conn.Close();
conn = new MySqlConnection("server=localhost;database=StocksManagerDB;uid=root;pwd=root;");
conn.Open();
conn.Close();
}
catch (Exception ex)
{
MessageBox.Show("Failure to connect to database.\nApplication will now exit.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
conn.Close();
Application.Exit();
}
create database查询正确执行。 但是当我登录登录表单时,它给了我异常。 我已经尝试了this但它仍然给了我同样的例外。 这是Login的代码。在加载事件中我把这个
conn = Connect.ConnectDB()
这是登录
中的button_click事件时的代码conn.Open();
pst.CommandText = "SELECT * FROM tblLogin WHERE `Username` ='" + txtUsername.Text + "' AND `Password` ='" + txtPassword.Text + "'";
rs = pst.ExecuteReader();
if (rs.Read() == true)
{
Login_Success();
}
else
{
MessageBox.Show("Login Failed!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
txtUsername.Clear();
txtPassword.Clear();
txtUsername.Focus();
}
conn.Close();
答案 0 :(得分:0)
打开mysql工作台。转到用户和权限。将用户的主机替换为'%'。您正在使用root帐户创建用户。点击底部的添加帐户。填写所需信息。然后单击选项卡架构权限。单击添加条目并添加允许该用户执行和访问的任何内容。使用您的应用的用户/密码。
您可能想要限制主机,无论如何您应该阅读一些关于mysql安全性的内容。花一点时间。
此外,您不希望通过将参数放在查询中来构建查询。阅读sql注入攻击。