gpt4 book ai didi

c# - 通过 C# 转义 SQL INSERT INTO 中的特殊字符

转载 作者:太空狗 更新时间:2023-10-29 20:52:51 25 4
gpt4 key购买 nike

我已经搜索了谷歌,但还没有找到解决我的问题的方法。基本上我有一个在图片库中设置的评论提要(类似于 facebook 或 stackoverflow 评论)。用户可以发表评论并阅读其他用户发表的评论。这工作正常。但是,如果用户尝试使用撇号发表评论,我会收到一个不错的小 Web 应用程序错误:

Incorrect syntax near 's'. Unclosed quotation mark after the character string ')'.

我发布到 SQL 的评论是 81 的。我想要一个可以转义所有特殊字符的解决方案,这样无论用户输入什么,都不会不管怎样,都不会出错。

代码隐藏

Fetcher.postUserComments(connectionString, imagePath, comments.ToString(), userId);

提取器

sqlCom.CommandText = "INSERT INTO dbo.Table(userId, imagePath, userComments, dateCommented) VALUES ('" + userId + "', '" + imagePath + "', '" + comments + "', '" + theDate + "')";

数据类型是字符串,我也尝试过执行 .ToString() 但没有成功。在此先感谢您提供任何有用的意见。

最佳答案

您应该始终使用参数化查询。它们可以帮助您避免像您所遇到的情况,以及 SQL Injection attacks

sqlCom.CommandText = "INSERT INTO dbo.Table(userId, imagePath, userComments, dateCommented) VALUES (@userId, @imagePath, @userComments, @dateCommented)";

sqlCom.Parameters.AddWithValue("@userId", userId);
sqlCom.Parameters.AddWithValue("@imagePath", imagePath);
sqlCom.Parameters.AddWithValue("@userComments", comments);
sqlCom.Parameters.AddWithValue("@dateCommented", theDate);

关于c# - 通过 C# 转义 SQL INSERT INTO 中的特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24319597/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com