c# - 数据库中存储的路径不正确

标签 c# mysql winforms

private void button14_Click(object sender, EventArgs e)
        {
            if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                    string c = openFileDialog1.FileName;

                    string connString = "Server=Localhost;Database=test;Uid=root;password=root;";
                    MySqlConnection conn = new MySqlConnection(connString);
                    MySqlCommand command = conn.CreateCommand();
                    command.CommandText = ("Insert into data (path) values('" + c + "')");
                    conn.Open();
                    command.ExecuteNonQuery();
                    conn.Close();
                    MessageBox.Show("Success");
                }
            }

这段代码对我有用,但不幸的是,存储在数据库中的路径不正确.. 存储的路径是这样的 (C:Users hesisDesktopREDEFENSEResourcesImagesRED1f.png) 它应该是这样的(C:P/Users/thesis/Desktop..../1f.png)。

但是当我用这段代码检查“sr”值时.. msgbox 显示恰到好处..

private void button14_Click(object sender, EventArgs e)
{
    if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
    {         
        MessageBox.Show(openFileDialog1.FileName);
    }
}

为什么会这样?

最佳答案

可能MySQL认为“\”字符是转义符,所以在字符串中不包含它。尝试

c.Replace(@"\", @"\\")

当你插入时,所以转义字符会被转义。

编辑:例如,像这样替换命令文本初始化行。还为单引号添加转义符。

string escapedPath = c.Replace(@"\", @"\\").Replace("'", @"\'");    
command.CommandText = ("Insert into data (path) values('" + escapedPath + "')");

编辑:请参阅@Matthew 的回答以获取使用参数化查询的更多“最佳实践”解决方案。

关于c# - 数据库中存储的路径不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14912704/

相关文章:

c# - Model-View-Presenter 模式中 "View"的用途是什么?

c# - 在单元测试中模拟对话框

php - 如何显示结果

mysql - 如何防止执行过大的搜索?

c# - 当我在 Visual Studio(设计器 View )中重建时,我的 userControl 中的更改被删除

.NET:如何让 Escape 关闭 MessageBox.Show()?

c# - 检查屏幕锁定是否有密码

c# - 如何从 C# App_Code 类中获取当前页面的 URL?

c# - C# 中的重载方法

mysql - 此路线图的数据库设计