我在一个涉及一个或多个句子的长串的数据库中存储和编辑一些字段.每当我在文本框中输入单引号并想要保存它时,它会引发异常,例如
“’l’附近的语法不正确.
字符串”后面的未闭合引号.
有什么想法可以避免吗?
“’l’附近的语法不正确.
字符串”后面的未闭合引号.
有什么想法可以避免吗?
编辑:
查询是:
sqlCommand com = new sqlCommand("UPDATE Questions SET Question = '[" + tbQuestion.Text + "]',Answer = '[" + tbAnswer.Text + "]',LastEdit = '" + CurrentUser.Login + "'WHERE ID = '" + CurrentQuestion.ID + "'");
解决方法
正如KM所说,不要这样做!
改为:
private static void UpdateQuestionByID( int questionID,string question,string answer,string lastEdited) { using (var conn = new sqlConnection(connectionString)) { conn.Open(); const string QUERY = @"UPDATE Questions " + @"SET Question = @Question,Answer = @Answer,LastEdit = @LastEdited " + @"WHERE ID = @QuestionID"; using (var cmd = new sqlCommand(QUERY,conn)) { cmd.Parameters.AddWithValue("@Question",question); cmd.Parameters.AddWithValue("@Answer",answer); cmd.Parameters.AddWithValue("@LastEdited",lastEdited); cmd.Parameters.AddWithValue("@QuestionID",questionID); cmd.ExecuteNonQuery(); } } }