0

我有一个 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();
                }
4

2 回答 2

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();
于 2012-12-19T09:25:15.063 回答
0

string.replace(";", "") 应该可以解决问题,但听起来您遇到了 SQL 注入问题。所以我建议阅读 SQL 注入,并解决这个问题,而不是删除分号和撇号。

于 2012-12-19T09:27:28.453 回答