C# 将屏幕截图[图像]保存并保存到数据库

C# 将屏幕截图[图像]保存并保存到数据库,c#,mysql,C#,Mysql,我试图保存一个用户打开到数据库中的图像目录。但是符号“\”不在路径中。它就像C:UsersAshleyDesktopScreenshot_1.png一样,正如您所看到的,它没有\,这使得它成为一个无效路径 private void button1_Click(object sender, EventArgs e) { OpenFileDialog open = new OpenFileDialog(); if (open.ShowDialog() == D

我试图保存一个用户打开到数据库中的图像目录。但是符号“\”不在路径中。它就像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上,我将它保存到数据库中,结果就像我之前所显示的那样,参数化查询应该可以工作

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用于参数化查询。但我仍然认为您可以
打开.File.Replace(“\”,“\”)就在MySQL.ExecuteOnQuery
之前,运行得非常好。谢谢