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/