2012-05-04 38 views
2

私のプロジェクトにDataSetデザイナがあります。デザイナで生成されたDataSetのNULL値が例外をスローします。

私の生成したデータセットの1つに、NULLを含むことができる列があります。データベース列自体にはNULLを含めることができます。別の列のLEFT OUTER JOINを介してコアテーブルに接続されています。別の列には、それ自体がNULLを含むことができます。それがnullを見たときにInvalidCastExceptionがスローされます

<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _ 
    Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _ 
    Public Property DeptName() As String 
     Get 
      Try 
       Return CType(Me(Me.tableEmployee.DeptNameColumn),String) 
      Catch e As Global.System.InvalidCastException 
       Throw New Global.System.Data.StrongTypingException("The value for column 'DeptName' in table 'Employee' is DBNull.", e) 
      End Try 
     End Get 
     Set 
      Me(Me.tableEmployee.DeptNameColumn) = value 
     End Set 
    End Property 

:結果

デザイナーで生成されたコードはこれです。これはです。insaneです。 コースの場合はnullがあります。私はそれらを期待しています。私が期待していないのは、のデータをチェックするたびに例外がスローされます。

String列の代わりにString?列を作成するようにDesignerに指示する方法はありますか?私の考え方には、列は本当にnullableでなければなりません。

SQL Server 9.0.50000インストールに接続していますが、これは関連する場合もあれば、そうでない場合もあります。

答えて

2

カラム名NullValueにはデフォルトで例外をスローするように設定されているプロパティがあります。 NULLに設定するとうまくいくはずです。 Check the property in Attached image

+0

驚くばかりです。デザイナーがこれを検出できないという奇妙なことですが、解決策を見いだすことは素晴らしいことです。 – Frosty840

関連する問題