我正在尝试将用户打开的图像目录保存到数据库中。但符号“\”不在路径中。结果如 C:UsersAshleyDesktopScreenshot_1.png ,你可以看到它没有\
,这使它成为无效路径。
private void button1_Click(object sender, EventArgs e)
{
OpenFileDialog open = new OpenFileDialog();
if (open.ShowDialog() == DialogResult.OK)
{
pictureBox1.Image = Image.FromFile(open.FileName);
pictureBox2.Image = Image.FromFile(open.FileName);
MySQL.ExecuteNonQuery(@"UPDATE users SET profile_image_dir = '" + open.FileName + "' WHERE username = '" + User.Details.Username + "'");
MessageBox.Show(""+ open.FileName + "\r\n");
}
在MySQL.ExecuteNonQuery上我将它保存到数据库中,它就像我之前显示的那样
答案 0 :(得分:4)
参数化查询应该有效
string cmdText = @"UPDATE users SET profile_image_dir = @file
WHERE username = @uname";
using(MySqlConnection cn = new MySqlConnection(.....))
using(MySqlCommand cmd = new MySqlCommand(cmdText, cn))
{
cn.Open();
cmd.Parameters.AddWithValue("@file", open.FileName);
cmd.Parameters.AddWithValue("@uname", User.Details.Username);
cmd.ExecuteNonQuery();
}
答案 1 :(得分:0)
使用parameterized query。这样做更安全,有助于避免其他潜在问题。
话虽如此,您还可以查看MySql documentation on string literals,然后您将看到它如何处理反斜杠以查看它对您的文字字符串执行的操作。