【发布时间】:2012-09-09 20:10:19
【问题描述】:
当 ExcuteNonQuery 执行时,我得到一个 ORAC 0936。我想我的问题是我的 SQL 的 VALUES 部分。提前感谢您的帮助
public int NewFunction(int UserID, string fName, string fDescription, string connectionStr)
{
OracleConnection connection = new OracleConnection(connectionStr);
try
{
//PLease Note that User ID and fDescription are passed into the function as
//parameters
connection.Open();
OracleCommand command = connection.CreateCommand();
OracleTransaction transaction = connection.BeginTransaction();
command.Transaction = transaction;
string LoadedFileName = @WfName;//Fd.FileName;
//read the xaml content from file
command.CommandText = "INSERT INTO XYZ(ID, NAME , F_SCRIPT) VALUES (@UserID, @fDescription, EMPTY_CLOB())";
command.ExecuteNonQuery();
transaction.Commit();
}
/////////////////////////////////////// ///////////////////// //***************************** //好的,谢谢大家的回复。这就是我使用stackckoverflow的其他帖子解决其他问题的方式。请注意,fDescription 和 USerID 正在传递给函数。
command.CommandText = "INSERT INTO IMS_Workflow (ID, NAME , F_SCRIPT) VALUES ('" + UserID + "', '" + WfDescription + "', EMPTY_CLOB())";
【问题讨论】:
-
我没有看到任何迹象表明您正在填充参数...您从未使用过
fName或fDescription参数。 -
感谢您的回复。 fDescription 被传递给函数。 fName 是一个多余的变量,我什至不应该在我的代码中使用它。我找到了答案,并将其添加到我的问题中。请免费评论它,因为这是我发现的工作。无论这是否是首选方式,我都有兴趣知道。再次感谢。
-
好吧
fDescription传递给 方法 - 但它根本没有传递给 database。您的解决方法会引发 SQL 注入攻击,请不要使用它。 -
谢谢。那么我该怎么做呢?我会很感激正确的语法。
-
看我的回答。如果这不起作用,请提供详细信息,而不仅仅是您在另一个答案中留下的“它不起作用”。