시간을내어보고 도와 주셔서 감사합니다. 나는 아주 쉬운 삽입 작업 인 것처럼 보이지만,이 부분을 통과하지 못하는 것 같아서 너 자신을 몰고 간다. 여기에 내가 코드를 가지고 무엇을 : 나는이 'DATE'형식 필드 REQUESTDATE 및 COMPLETION_DATE를 제외하고 작업 모든 것을 얻을 수 있었다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();
}
}
. ExecuteNonQuery() 호출이 예외를 throw 할 때 예외를 제외하고 내가 무엇을하고 있는지 알지 못합니다.
누구나 제안 사항이 있으면 정말 감사하겠습니다. 당신은 아마 OracleType.DateTime
을 사용하고 입력 문자열을 파싱하여 생성 날짜 시간 값, 예를 전달하려는 날짜 필드에 대한
예외는 무엇입니까? 또한 Oracle에서 동일한 입력으로 쿼리를 실행하면 실행됩니까? –
ORA-01740 : 식별자에 큰 따옴표가 누락되었습니다. 편집 : 이제 INSERT 문에 ""또는 " '이 (가) 생각됩니다. –
ORA-01843 : 유효한 달이 아닙니다 : RequestDate –