[英]c# MySqlCommand doesn't appear to be resolving Parameters
我正在尝试使用参数运行MySqlCommand,但是当我查看SQL日志时,参数显示出来。
我已尝试使用@和?,在我的sqlconnection字符串中尝试使用'old syntax = yes'。
这是我的代码。
bool CheckLoginDetails(string username, string password){
DataTable dt = new DataTable ();
MySqlCommand command = new MySqlCommand ("select * from `accounts` where `username` = '@username';", SL.Database.connection);
command.Parameters.AddWithValue ("@username", username);
dt.Load (command.ExecuteReader());
}
这是SQL日志。
150823 3:19:50 22 Connect root@localhost on unity_test
22 Query SHOW VARIABLES
22 Query SHOW COLLATION
22 Query SET character_set_results=NULL
22 Init DB unity_test
150823 3:19:52 22 Query select * from `accounts` where `username` = '@username'
我正在使用.net 2.0而且我不确定mysql dll版本,我发现这里: http : //forum.unity3d.com/threads/reading-database-and-or-spreadsheets.11466/
由于Unity,我无法升级.net。 任何建议将不胜感激!
建议(未测试):
bool CheckLoginDetails(string username, string password){
string sql = select * from accounts where username = ?";
MySqlCommand command = new MySqlCommand(sql);
command.Parameters.Add(new MySqlParameter("", username));
MySqlDataReader r = command.ExecuteReader();
...
}
重点是“?” 应该管用。
尝试command.Parameters.Add(“@ username”,MysqlDbType.Varchar).Value = username;
应该管用 !
试试这个,改变
MySqlCommand command = new MySqlCommand ("select * from `accounts` where `username` = '@username';", SL.Database.connection);
command.Parameters.AddWithValue ("@username", username);
至
MySqlCommand command = new MySqlCommand ("select * from accounts where username = @username;", SL.Database.connection);
command.Parameters.Add("@username", username);
试试这个(建议)
bool CheckLoginDetails(string username, string password){
DataTable dt = new DataTable ();
MySqlCommand command = new MySqlCommand ("select * from accounts where username = @username;", SL.Database.connection);
command.Parameters.AddWithValue ("@username", username);
dt.Load (command.ExecuteReader());
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.