首页 > 解决方案 > 从 Linq Query 管理空白字段

问题描述

我正在 VB.Net 中编写一个在我的数据库上运行 LINQ 查询的方法,并将查询中的信息放入表单上的文本框中。

Public Sub OpenPartWindow(ByVal partNumber As String)
    Using dbContext As New DB_LINQDataContext
        Dim query = (From p In dbContext.Parts
                     Join ppl In dbContext.Part_Price_Logs On p.Part_ID Equals ppl.Part_ID
                     Where p.Part_Number = partNumber
                     Select p.Part_Number, p.Part_Description, p.Part_Information, p.Supplier.Supplier_Name, _
                     p.Part_Manufacturer.Manufacturer_Name, p.Part_Subcategory.Part_Category.Category_Description, _
                     p.Part_Subcategory.Subcategory_Description, ppl.Cost_Per_Unit, ppl.Discount_Percentage).First()
        MessageBox.Show(query.ToString())
        txtPartNum.Text = query.Part_Number.ToString()
        txtSupplier.Text = query.Supplier_Name.ToString()
        txtManufacturer.Text = query.Manufacturer_Name.ToString()
        txtPrice.Text = query.Cost_Per_Unit.ToString()
        txtDiscount.Text = query.Discount_Percentage.ToString()
        txtDescription.Text = query.Part_Description.ToString()
        txtInfo.Text = query.Part_Information.ToString()
        Me.Show()
    End Using
End Sub

我现在遇到的问题是最后一个字段,txtInfoTextBox。您会看到Part_Information数据库上的字段允许NULL值。因此,当我在该字段为 null 时填写该字段时,我得到一个NullReferenceException,这是可以理解的。但是我找不到解决此异常的方法。

我试过了:

If Not IsNothing(query._Part_Information.ToString()) Then

If query.Part_Information.Length > 0 Then

As If 语句首先运行。但我每次都收到错误。所以我对如何处理这个错误感到困惑。

标签: sql.netvb.netwinformslinq

解决方案


您可以使用以下任一选项:

如果query.Part_Information为 null,则前两个表达式的结果为Sting.Empty,最后一个表达式的结果为Nothing


推荐阅读