0

我已经在 VB .NET 中实现了一个 Web 服务。

为了检索数据,我创建了一个像这样的对象:

Public Class Product 
    Public idProduct As Integer
    Public state As Integer
    Public description As String
    Public longDescription As String
    Public idCategory As Integer
    Public price As Decimal
End Class

然后我创建一个产品对象列表:

Dim ProductList As List(Of Product)

这就是我的 WebMethod 返回的内容。

Web 服务运行良好,并返回一个包含这样的产品列表的 xml

<Product>
   <idProduct>169</idProduct >
   <state>0</state>
   <idCategory>32001</idCategory>
   <description>description of the article</description>
   <longDescription>extended description of the article</longDescription>
   <price>2.44</price>
</Product>

但是,在某些情况下,我不想检索所有这些信息。我只想返回 idProduct 和状态:

<Product>
   <idProduct>170</idProduct >
   <state>-1</state>
</Product>

相反,我得到的是以下内容:

<Product>
   <idProduct>170</idProduct >
   <state>-1</state>
   <idCategory>0</idCategory>
   <price>0</price>
</Product>

仅从 xml 中删除字符串字段(描述和 longDescription),而对象中的所有字段都定义为整数或小数,如果我没有设置任何值,则自动设置为零。

编辑:

我用于创建对象的代码如下:

For Each row In table.Rows
   p = New Product()
   p.idProduct= Utilities.DBNullToInvalidInt(row.Item("ID"))
   p.state= Utilities.DBNullToInvalidInt(row.Item("State"))
   If p.FileStateID = 0 Then
      p.idCategory= Utilities.DBNullToInvalidInt(row.Item("idCategory"))
      p.description= Utilities.DBNullToVoidString(row.Item("Description"))
      p.longDescription = Utilities.DBNullToVoidString(row.Item("ExtendedDescription"))
      p.price= row.Item("Price")
   End If

   ProductList .Add(p)

Next

其中表包含我的 SQL 查询的结果

4

1 回答 1

0

制作可能被省略的字段Nullable,如下所示:

Public Class Product 
    Public idProduct As Integer
    Public state As Integer
    Public description As String
    Public longDescription As String
    Public idCategory As Nullable(Of Integer)
    Public price As Nullable(Of Decimal)
End Class

现在idCategory并将price默认为Nothing(即null)。

于 2013-11-12T15:07:44.930 回答