0

完全な例が見つかりません。グリッドとコンボボックスでトンが見つかりましたが、テキストボックスでは見つかりませんでした。このテストでは、TypeCode = "0" の UserPhoneType テーブルから "PhoneTypeName" を検索し、その最初の値を asp.net テキスト ボックスに割り当てます。

現在、テキスト ボックスを「phonetype.FirstOrDefault.PhoneTypeName.ToString」に設定すると、「オブジェクト参照がオブジェクトのインスタンスに設定されていません」というメッセージが表示されます。

Using dbContext As New EntitiesModel()
    Dim phonetype As IEnumerable(Of User_PhoneType) = dbContext.User_PhoneTypes.Where(Function(c) c.PhoneTypeCode = "O")
    mytextbox.Text = phonetype.FirstOrDefault.PhoneTypeName.ToString
End Using

- - 編集 - -

提案通り変更しました。また、データにアクセスできることを確認するために、PhoneTypes のリスト全体をドロップリスト コントロールに正常にバインドしました。これは、ここで単一のレコードのテーブルをクエリする方法である必要があります。

同じエラーが発生しますが、「Dim type = phonetype.First...」でレコードはテーブルにありますが、私のコードでは抽出されていないようです。

Dim phonetype As IEnumerable(Of User_PhoneType) = dbContext1.User_PhoneTypes.Where(Function(c) c.PhoneTypeCode = "M")
Dim type = phonetype.FirstOrDefault
If Object.ReferenceEquals(type, Nothing) = False And Object.ReferenceEquals(type.PhoneTypeName, Nothing) = False Then
   mytextbox.Text = type.PhoneTypeName.ToString
End If
4

2 に答える 2

0

修正しました。

これを使用して生成された SQL 文字列を表示できました: mytextbox.text = phonetype.tostring

SQLに「NULL = 'O'」が含まれていることがわかりました

例のようにしましたか?!? ただし、クエリ対象のフィールドに .ToString を追加すると、機能しました。

したがって、最終的には次のようになります。

Using dbContext As New EntitiesModel()
    Dim phonetype As IEnumerable(Of User_PhoneType) = dbContext.User_PhoneTypes.Where(Function(c) c.PhoneTypeCode.**ToString** = "O")
    mytextbox.Text = phonetype.FirstOrDefault.PhoneTypeName.ToString
End Using

ところで、最初にnullをチェックするDimitarポイントは良いアドバイスです(+1)。彼が言ったように、価値は何もありませんでした。

于 2013-06-27T01:57:11.107 に答える