2009-08-02 13 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'は有効な文字列ではありません(間違った引用符)。 *実際のコード*を投稿してください。理想的には、問題を示す短くて完全なプログラム(コンソールアプリなど)を投稿してください。 –

答えて

1

を入力します。その正確な形式が使用しているどのOracleドライバに依存しますが、それはのようなものになりそうだ。

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

あなたは、この(非テストコード)のようなものを試してみてくださいstandard date format

+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

日付の形式がOracleで間違っている可能性があります。

オラクルは、あなたが使用していないことがわかるyyyy/mm/dd日付形式を受け入れています。

これはoracleコマンドの場合はJon Skeetと一緒ですが、通常のSQL Queryを文字列内に作成してからクエリを実行したい場合があります。

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の受け入れ形式に日付を変換しようとする一方で: Oracle/PLSQL: Insert a date/time value into an Oracle table

感謝を

関連する問題