c#提交到数据库时从字符串中剥离字符

c# stripping characters from string when submitting to database

我目前正在开展一个项目,我需要将文件路径提交到数据库,并且还能够从数据库中提取该路径。

目前我可以将路径提交到数据库并从数据库中提取数据,但是当我提交到数据库时,路径中的斜杠似乎从字符串中删除了。

如何在提交到数据库和从数据库中提取时阻止 \ 被删除?

这是我的保存按钮事件代码:

private void btnSaveSettings_Click(object sender, EventArgs e)
{
    string myConnection = "datasource=localhost;port=3306;username=username;password=password";
    string Query = "insert into ephex_contcollections.Paths (toindex,indexed) values('" + this.txtToIndexPath.Text + "','" + this.txtIndexedPath.Text + "') ;";
    MySqlConnection myConn = new MySqlConnection(myConnection);

    MySqlCommand cmdDB = new MySqlCommand(Query, myConn);
    MySqlDataReader myReader;

    try
    {
        myConn.Open();
        myReader = cmdDB.ExecuteReader();
        MessageBox.Show("Save Successful");

        while (myReader.Read())
        {

        }
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
} //close save button event

我提交给数据库的字符串在文本框中看起来像这样:

C:\Users\Meta\Desktop\Alpha

但是他们是这样提交到数据库的:

C:UsersMetaDesktopAlpha

在此先感谢(我是使用 C# 使用 MySQL 数据库的新手,我的 C# 也很生疏)

你应该使用 SQL Parameters,但如果你想快速解决这个问题,请在路径中添加双斜杠,这样输出将是:C:\Users\Meta\Desktop\Alpha

string Query = "insert into ephex_contcollections.Paths (toindex,indexed) values('" + this.txtToIndexPath.Text.Replace(@"\" , @"\") + "','" + this.txtIndexedPath.Text.Replace(@"\" , @"\") + "') ;";

您遇到的问题是,即使在字符串中使用斜线,也有一定意义。

您需要像这样在字符串中使用特殊字符作为反斜杠

"hello \ world" = "hello \ world"

还有,你可以在字符串前面加上@符号,不使用转义符,但我不推荐,像这样的字符串 s = @ "hello \ world" = " hello \ world".

希望对您有所帮助。

编辑:Whosebug 一直在编辑我的反斜杠