【发布时间】:2015-01-13 20:20:22
【问题描述】:
我目前正在做一个项目,我需要向数据库提交文件路径,并且还能够从数据库中提取该路径。
目前我能够提交到数据库的路径并从数据库中提取数据,但是当我提交到数据库时,路径中的斜杠似乎被从字符串中剥离。
如何在提交到数据库和从数据库中提取时阻止 \ 被剥离?
这是我的保存按钮事件代码:
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 注入讨论。参数化你的语句。 stackoverflow.com/questions/652978/…
-
使用参数而不是查询中的文本框文本
-
'\' 是 c# 中的转义字符。我不确定它如何与连接字符串一起工作,但如果您要对 Query 进行硬编码以插入一条记录,则 \ 字符需要自行转义。例如:string Query = "insert into ephex_contcollections.Paths (toindex,indexed) values ('Home','C:\\Users\\Home')"
标签: c# mysql database visual-studio