如何使用c#更改字符串中的符号

时间:2014-10-13 04:23:38

标签: c# sql sql-server

我的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(''', '"'));
 }

请任何人帮忙提出一些想法来解决这个问题。提前谢谢。

3 个答案:

答案 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";