Single quote handling in a SQL string
I have an application where the values in the text field are sent to the database.
For example I have a form with one field 开发者_JAVA技巧(text box). When I press Ok button then the content of the text field is inserted as a record into a table. I'm just trimming and extracting the text box's text into variable and passing it to my SQL string.
The problem is that whenever something like "It's" or "Friend's" the single quote is identified as the end of string. In Delphi I have seen something like QuotedString
to avoide this. Any ideas from you?
Don't ever build SQL statements like that, it's very unsafe (read this). Use parameters, i.e:
var command = new SqlCommand("select * from person where firstname = @firstname");
SqlParameter param = new SqlParameter();
param.ParameterName = "@firstname";
param.Value = "testing12'3";
command.Parameters.Add(param);
Use .Replace("'","''''")
For example
string name = txtName.Text.Replace("'","''''");
Now name
can be passed as a parameter in stored procedure etc.
Hope this will help you ...
public static string DoQuotes(string sql)
{
if (sql == null)
return "";
else
return sql.Replace("'", "''");
}
精彩评论