我正在尝试在我的mysql数据库中存储一个映像路径,但是它不存储反斜杠(/)。
这是我的路-string str = @"C:\Users\user\Downloads\99 Most Amazing Collection of Computer Desktop Wallpapers - 5522 [ECLiPSE]"
这是它在mysql中的显示方式-C:UsersuserDownloads99计算机桌面墙纸的最惊人集合-5522 [ECLiPSE]
因此,我无法检索图像,因此如何存储包含反斜杠的图像路径。
Mysql代码
string sqlstring = "server=; port= ; user id =;Password=;Database=;";
string str = @"C:\Users\user\Downloads\99 Most Amazing Collection of
Computer Desktop Wallpapers - 5522 [ECLiPSE]"
MySqlConnection conn = new MySqlConnection(sqlstring);
try
{
conn.Open();
}
catch (MySqlException ex)
{
throw ex;
}
string Query = "INSERT INTO test.blogimagestable (ImagesId)values('" + str + "');";
MySqlCommand cmd = new MySqlCommand(Query, conn);
cmd.ExecuteReader();
conn.Close();
答案 0 :(得分:2)
您应该使用参数化查询来防止此类问题自动发生。还有其他讨厌的东西,例如SQL注入。
您宁可调用ExecuteNonQuery()
而不是ExecuteReader()
来声明,它不会返回结果。或者至少要在无用的阅读器上调用Dispose()
或使用using
。 (其他一次性物品也一样。)
...
string Query = "INSERT INTO test.blogimagestable (ImagesId)values(?str);";
MySqlCommand cmd = new MySqlCommand(Query, conn)
cmd.Parameters.Add("?str", MySqlDbType.VarString, 256).Value = str;
cmd.ExecuteNonQuery();
...
根据您的列的类型更改传递给Parameters.Add()
的类型和长度。