我有一个aspx表单和一个多行文本框。我将文本框值发送到Oracle表,Oracle不喜欢撇号和分号。那么请你告诉我如何从字符串中排除撇号和分号?我这样做。
using (OracleConnection connection = new OracleConnection())
{
connection.ConnectionString = connectionString;
connection.Open();
OracleCommand command = connection.CreateCommand();
command.CommandType = System.Data.CommandType.StoredProcedure;
// Name of procedure or function to be executed
command.CommandText = "PROC_SENDREQUISITION";
command.Parameters.Add(new OracleParameter("P_ReqID", OracleType.VarChar)).Value = preqID;
command.Parameters.Add(new OracleParameter("P_reqDate", OracleType.VarChar)).Value = preqDate;
command.Parameters.Add(new OracleParameter("P_requester", OracleType.VarChar)).Value = prequester;
command.Parameters.Add(new OracleParameter("P_remarks", OracleType.VarChar)).Value = premarks;
command.ExecuteNonQuery();
}
答案 0 :(得分:1)
在查询中使用参数。
现在你可能会连接字符串,这会导致 Sql Injection 。
来自MSDN的示例:
string queryString = "SELECT * FROM Table1 WHERE Field1 LIKE ?";
OleDbCommand command = new OleDbCommand(queryString, connection);
command.Parameters.Add("@p1", OleDbType.Char, 3).Value = "a";
OleDbDataReader reader = command.ExecuteReader();
答案 1 :(得分:0)
string.replace(“;”,“”)应该做的伎俩,但听起来你有SQL注入问题。因此,我建议阅读SQL注入,并解决它而不是删除半冒号和撇号。