Спасибо, что нашли время посмотреть и помочь мне. Я вовлекаю себя в орехи с тем, что кажется очень простой вставкой, но я не могу передать эту часть. Вот что у меня есть для кода:OracleCommand.ExecuteNonQuery() throwing exception
protected void InsertIntoMaterialDB()
{
ToroGeneral toro = new ToroGeneral();
// Grab connection string.
string conString = toro.GetOracle1ConnectionString();
string insertQuery = "INSERT INTO MATERIALMOVEREQUEST (ORIGINATOR, REQUESTDATE, PARTNUMBER, REQUESTQTY, MOVEFROM, MOVETO, COMPLETEDBY, COMPLETION_DATE, COMMENTS, RESPONSETIME) "
+ "values (:Originator, :RequestDate, :PartNumber, :RequestQty, :MoveFrom, :MoveTo, :CompletedBy, :CompletionDate, :ResponseTime, :Comments)";
using(OracleConnection conn1 = new OracleConnection(conString))
{
conn1.Open();
OracleCommand cmd = conn1.CreateCommand();
OracleTransaction myTrans;
cmd.CommandText = insertQuery;
myTrans = conn1.BeginTransaction(IsolationLevel.ReadCommitted);
cmd.Transaction = myTrans;
if (cmd.Connection.State == ConnectionState.Closed)
{
cmd.Connection.Open();
}
DateTime rDate = DateTime.Parse(RequestDateTB.Text);
DateTime cDate = DateTime.Parse(CompDateTB.Text);
cmd.Parameters.AddWithValue("Originator", OracleType.VarChar).Value = OriginatorTB.Text;
cmd.Parameters.AddWithValue("RequestDate", OracleType.DateTime).Value = rDate;
cmd.Parameters.AddWithValue("PartNumber", OracleType.VarChar).Value = PartNumber.Text;
cmd.Parameters.AddWithValue("RequestQty", OracleType.Number).Value = Convert.ToInt32(RequestQuantity.Text);
cmd.Parameters.AddWithValue("MoveFrom", OracleType.VarChar).Value = MoveFromTB.Text;
cmd.Parameters.AddWithValue("MoveTo", OracleType.VarChar).Value = MoveToTB.Text;
cmd.Parameters.AddWithValue("CompletedBy", OracleType.VarChar).Value = CompletedByTB.Text;
cmd.Parameters.AddWithValue("CompletionDate", OracleType.DateTime).Value = cDate;
cmd.Parameters.AddWithValue("ResponseTime", OracleType.Number).Value = Convert.ToInt32(RespTimeTB.Text);
cmd.Parameters.AddWithValue("Comments", OracleType.VarChar).Value = CommentsTB.Text;
cmd.ExecuteNonQuery(); // THIS THROWS AN EXCEPTION.
cmd.Transaction.Commit();
}
}
Я был в состоянии получить все, работая на два «DATE» полей типа REQUESTDATE и COMPLETION_DATE исключения. Я не знаю, что я делаю неправильно, за исключением того, что при вызове ExecuteNonQuery() он генерирует исключение.
Если у кого-то есть предложения, это было бы очень признательно.
В чем исключение? Кроме того, если вы выполняете запрос с одинаковыми входами в Oracle, выполняет ли это выполнение? –
ORA-01740: отсутствующая двойная кавычка в идентификаторе EDIT: Я думаю, что в моем заявлении INSERT мне не хватает «" или '', когда я думаю об этом. –
ORA-01843: недействительный месяц, указывая на: RequestDate –