我的C#应用程序能够将数据存储到SQL Server数据库中。目前,当用户在其字符串/句子中插入符号时,我不得不提出问题:
示例:我想“测试”您的系统
因此,当插入db时,'符号将在使用sql查询插入时返回错误。
我的查询示例:
INSERT INTO TABLE_NAME (POST_BODY)
VALUES ('i want to 'test' your system')
然后我的计划是更改检查字符串是否包含'符号,它将更改为“符号。
我尝试使用此代码,但不能:
void ChangeSymbol(String str)
{
Console.WriteLine("\"{0}\"", str);
Console.WriteLine("\"{0}\"", str.Replace(''', '"'));
}
请任何人帮忙提出一些想法来解决这个问题。提前谢谢。
答案 0 :(得分:1)
使用SQL代码将单引号插入数据库没有问题。如果要插入文本文字,则只需使用另一个单引号转义单引号,例如
INSERT INTO MyTable (GivenName, FamilyName) VALUES ('James', 'O''Connell')
如果您要在SQL语句中插入单独的值,那么无论数据类型如何都应该使用参数,因此不会出现单引号的问题,例如
mySqlCommand.CommandText = "INSERT INTO MyTable (GivenName, FamilyName) VALUES (@GivenName, @FamilyName)";
mySqlCommand.Parameters.AddWithValue("@GivenName", givenName);
mySqlCommand.Parameters.AddWithValue("@FamilyName", familyName);
答案 1 :(得分:0)
使用参数绑定。由于我们不使用MSSQL
,因此我没有示例代码这是一个样本 http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.parameters(v=vs.110).aspx
答案 2 :(得分:-2)
你通过加倍来逃避单引号。所以试试这个:
string example = "I want to ''test'' your system";