我想将字符串保存到MSSQL
2008服务器。
有时会出现一些特殊字符,这会在保存到数据库时出现异常。
处理此类情况的最佳方法是什么。是否有任何我可能忽略使用的内置功能?
答案 0 :(得分:3)
使用参数。我相信使用参数在内部处理这些事情
http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.parameters(v=vs.110).aspx
Why do we always prefer using parameters in SQL statements?
http://weblogs.sqlteam.com/jeffs/archive/2006/07/21/10728.aspx
答案 1 :(得分:0)
你必须在字符串中检查每个特殊字符的出现,并且必须用各自的转义序列格式替换每个特殊字符。
您可以使用以下功能。这是一个样本。
public String addescape(String str)
{
String temp = "";
foreach (char ch in str)
{
if (ch == '\0')
temp += "";
else if (ch == '\'')
temp += "'";
else if (ch == '\\')
temp += """;
else if (ch == '<')
temp += "<";
else if (ch == '>')
temp += ">";
else
temp += ch;
}
return (temp);
}
答案 2 :(得分:0)
如何插入数据库 - 您可以使用参数化查询来插入吗? https://stackoverflow.com/a/5529010/685341
答案 3 :(得分:0)
对于特殊字符,我会添加一些你想要使用的字符。例如添加*字符。将其写入具有修改状态的数据库。然后,当您从数据库中读取数据时,您可以删除您添加的这些字符。这是一个解决方案(绝对有一个内置的功能.NET环境),但我不知道......