【发布时间】:2019-02-13 11:53:49
【问题描述】:
这是我的 IActionResult,我正在使用 MySQL,它应该让用户注册,但由于某种原因,每次我尝试执行它时,我都会收到“连接必须有效且打开”的消息,我已经检查过了连接字符串是有效的,我也打开了,谁能帮帮我?
是的,我知道这很容易发生 SQL 注入,所以不需要告诉我。
public IActionResult Maak()
{
string conn = "server=localhost;user id=Job;password=SamplePassword;database=kingdom_of_uluth";
MySqlConnection con = new MySqlConnection(conn);
string userName = HttpContext.Request.Query["usernamesignup"];
string password = HttpContext.Request.Query["passwordsignup"];
con.ConnectionString = conn;
con.Open();
try
{
MySqlCommand com = new MySqlCommand($"INSERT INTO account(username, password, lastlogin) VALUES({userName}, {password}, now());");
com.ExecuteReader();
}
catch (Exception ex)
{
Debug.WriteLine(ex.Message);
}
con.Close();
return View("RegisterOK");
}
我已经尝试了 Henk Mollema 建议的解决方案,但随后我收到另一个错误
抛出异常:MySql.Data.dll 中的“MySql.Data.MySqlClient.MySqlException” “字段列表”中的未知列“asdasd”
其中 asdasd 是我在用户名字段中输入的用户名
【问题讨论】:
-
@HenkMollema 试过了,还是不行。编辑了你的问题
-
尝试在
VALUES (...)语句中的值周围添加引号。例如。'{userName}'。如果您只是使用com.Parameters.AddWithValue()为您的查询使用正确的命令参数,而不是连接查询中的值,您就不会遇到这个问题。
标签: c# mysql asp.net asp.net-core