2010-11-18 10 views
2

私はVS2008 DataSetsを使用してデータベースに接続しています。 (:日時?すなわちタイプ)c#(3.5)TableAdapterを使用してNULL DateTime値をデータベースに読み込みます。

MSDN Datasetsは断固状態:

NULL可能またはNULL可能構造は、現在のデータセットでサポートされていないデータベース内のテーブルのいずれかは、ヌルを許容datetime列を含んでいます。

しかしTableAdatersがNULL可能タイプをサポートすることができますTableAdapters状態のMSDNのサイトで:

TableAdaptersはNULL可能なタイプ(Tの)空白可能とTをサポートして?。 null可能な型の詳細については... C#のnull可能な型の詳細については、「Nullable型の使用(C#プログラミングガイド)」を参照してください。

私は混乱しています!ヌルのDateTimeを返し、私は「AllowDBNull =真」に違反している列のプロパティを設定しているデータセットデザイナで

が、私はTableAdapterのクエリを実行するたびに(UDF SELECT * FROM)私は、次の例外を取得:「ArguementOutOfRangeException:年、Month、およびDayのパラメータは、表現できないDateTimeを記述します。

私が持っていた考えの1つは、null値を正しく処理するためにSystem.ObjectにColumnの型を変更してから、私自身のコードで変換を行うことでしたが、同じ例外が発生しました。

このquestionは、クエリが返されたらnullを処理する方法を提案しますが、クエリを返すことはできません。

TableAdapterまたはDatasetを変更して、データベースのNULLを処理できるテーブルでクエリを実行できるようにするにはどうすればよいですか?私が見つけた

+0

質問を表示してください。それはちょうど働くべきです。 –

+0

私はクエリが動作すると思う、私は問題が自動的に生成されたTableAdapter/Datasetは、nullのDateTimeを相互運用することはできませんが、ちょうど例外を提起すると思います。 –

+0

いいえ、生成されたデータ型はnull値の列を正しく処理できます。 –

答えて

0

ソリューションは、TO_CHAR()Oracleの機能を使用し、これは使用してコードで発生する必要があるいくつかの変換があることを意味する

SELECT to_char(NULL_DATE_FIELD,'dd/mm/yyyy HH24:MI:SS') FROM * 

文字列値を期待する表アダプターを伝えることでした。しかし理想的ではありません!

関連する問題