如何将报价添加到动态SQL命令?

前端之家收集整理的这篇文章主要介绍了如何将报价添加到动态SQL命令?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在一个涉及一个或多个句子的长串的数据库中存储和编辑一些字段.每当我在文本框中输入单引号并想要保存它时,它会引发异常,例如
“’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();
        }
    }
}

猜你在找的MsSQL相关文章