使用Telerik OpenAccess后面的代码中的文本框的简单绑定值

问题描述 投票:0回答:2

我找不到一个完整的例子。在网格和组合框上找到吨,但不是文本框。此测试是从具有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列表绑定到一个droplist控件...以确认数据是否可访问。它必须是我在这里查询表中的单个记录的方式。

我得到了相同的错误,但在“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
asp.net data-binding telerik code-behind openaccess
2个回答
2
投票

通常,获得此异常有以下两种可能的原因:

1)phonetype列表为空,FirstOrDefault方法返回Nothing值。

2)phonetype列表的第一个元素的PhoneTypeName属性具有Nothing值。

为了确保您不会将Object引用设置为对象异常的实例,我建议您在设置TextBox值之前添加Nothing检查。它可能类似于下面的那个:

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

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

BTW,Dimitar指向首先检查null是好建议(+1)。他所说的价值并不算什么。

© www.soinside.com 2019 - 2024. All rights reserved.