如何在Mysql数据库中存储ImagePath?

时间:2019-04-07 20:19:49

标签: c# mysql

我正在尝试在我的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();

1 个答案:

答案 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()的类型和长度。