我试图获取我的帐户表的行数,以便我可以登录帐户,但
MySQL参数不添加值.
这是我的代码:
public int MyMethod(string username,string password) { int count = 0; string query = "SELECT * FROM accounts WHERE username = '?user' AND password = '?pass' LIMIT 1;"; using (MysqLCommand cmd = new MysqLCommand(query,connector)) { cmd.Parameters.Add(new MysqLParameter("?user",username)); cmd.Parameters.Add(new MysqLParameter("?pass",password)); count = int.Parse(cmd.ExecuteScalar().ToString()); } return count; }
解决方法
参数占位符不应该用单引号括起来,因为它会强制它成为值而不是参数,试试这个,
public int MyMethod(string username,string password) { int count = 0; string query = "SELECT * FROM accounts WHERE username = @user AND password = @pass LIMIT 1;"; using (MysqLCommand cmd = new MysqLCommand(query,connector)) { cmd.Parameters.Add(new MysqLParameter("@user",username)); cmd.Parameters.Add(new MysqLParameter("@pass ",password)); connector.open(); // don't forget to open the connection count = int.Parse(cmd.ExecuteScalar().ToString()); } return count; }