2009-08-02 9 views
-1

테이블이 있습니다. == create table newstudent (enroll int, name varchar2 (20), DoJoin date); C#에서 은 내가어떻게 oracle10g 데이터베이스에 DateTime C# 언어를 저장할 수 있습니까?

oraclecommand(1,'amit purohit', DateTime.Now()); 
//Error found 'nvalid month' 
oraclecommand(1,'amit purohit', String.Format("{0:dd-MMM-yyyy}")); 
//problme that save only date into database but i need time also. like '11-AUG-2009 11:22:32.0' 
oraclecommand(1,'amit purohit', String.Format("{0:dd-MMM-yyyy hh:mm:ss}") 
//also error get like string picture format in date time values 
+0

그런데 우리는했습니다 "oraclecommand"가 무엇인지 전혀 알지 못합니다. 'amit purohit'이 유효한 문자열 (잘못된 따옴표)이 아니므로, 게시 한 내용은 C#으로 유효하지 않습니다. 실제 코드 *를 게시하십시오. 문제를 시연하는 짧지 만 완전한 프로그램 (예 : 콘솔 앱)을 게시하는 것이 가장 이상적입니다. –

답변

1

당신은 매개 변수가있는 문을 사용하고 적절한 매개 변수 유형을 지정의 관련 데이터 매개 변수를 추가해야합니다 입력 할 때. 그것의 정확한 형식은 오라클 드라이버를 사용중인 따라 달라집니다,하지만 같은 될 가능성이 높습니다 :

command.Parameters.Add(":date", OracleDbType.DateTime).Value = ...; 
0
+5

데이터베이스에 삽입하기 전에 DateTime을 문자열로 변환해서는 안됩니다. 필요하지도 않고 좋은 습관도 아닙니다. –

1

이 (비 - 테스트 코드) 같은 것을보십시오 확인 했 :

public void InsertDateTime(DateTime aoDateTime) { 
    using (var oracleConnection = new OracleConnection("<my connection string>")) 
    { 
    var oracleCommand = new OracleCommand(
     "INSERT INTO MY_TABLE (MY_DATE_FIELD) VALUES (:pMY_DATE_VALUE)", 
     oracleConnection); 
    oracleCommand.Parameters.Add(
     new OracleParameter(":pMY_DATE_VALUE", aoDateTime)); 

    oracleConnection.Open(); 
    oracleCommand.ExecuteNonQuery(); 
    } 
} 
3

오라클의 날짜 형식이 잘못되었을 수 있습니다.

오라클은 귀하가 사용하지 않는 것으로 볼 수있는 yyyy/mm/dd 날짜 형식을 허용합니다.

oraclecommand에 대해 Jon Skeet과 함께하고 있지만 일반적으로 문자열 내부에 일반 SQL 쿼리를 작성한 다음 쿼리를 실행하려고합니다.

to_date 함수를 사용하여 날짜를 올바른 형식으로 변환 할 수 있습니다. (Standard Date and Time Format Strings 통해)

insert into table_name 
(date_field) 
values 
(to_date('2003/05/03 21:02:44', 'yyyy/mm/dd hh24:mi:ss')); 

또는

당신이 어떤 C#을 기능을 사용하여 적절한 오라클 허용되는 형식으로 날짜를 변환하려고 할 수 있습니다 반면에 : Oracle/PLSQL: Insert a date/time value into an Oracle table

감사를

관련 문제