asp.net - 变量不是类的成员
问题描述
我正在运行一个循环,以从填充了产品的数组列表中将行添加到数据表中。我可以获得第一个对象项目,但是以下项目带来了以下问题:
错误 BC30456 'itemName' 不是 'Product' 的成员
逐步浏览解决方案,我可以看到该数组确实包含我要显示的对象项。
Product class
public class Product
{
private int itemQuantity { get; set; }
public string itemID { get; set; }
private string itemName { get; set; }
private string itemCategory { get; set; }
private double itemPrice { get; set; }
private string itemDescription { get; set; }
public Product()
{
}
public Product(string ID, string name, string category, double price, string description)
{
itemID = ID;
itemName = name;
itemCategory = category;
itemPrice = price;
itemDescription = description;
itemQuantity = 1;
}
}
以及我向数据表添加行的方法
Public Sub createShoppingCartTable()
Dim tableColumnCode As System.Data.DataColumn = New System.Data.DataColumn
With tableColumnCode
.DataType = System.Type.GetType("System.String")
.ColumnName = "ProductCode"
.DefaultValue = "0"
End With
ShoppingCartTable.Columns.Add(tableColumnCode)
Dim tableColumnName As System.Data.DataColumn = New System.Data.DataColumn
With tableColumnName
.DataType = System.Type.GetType("System.String")
.ColumnName = "Name"
.DefaultValue = "unknown"
End With
ShoppingCartTable.Columns.Add(tableColumnName)
Dim tableColumnQuantity As System.Data.DataColumn = New System.Data.DataColumn
With tableColumnQuantity
.DataType = System.Type.GetType("System.String")
.ColumnName = "Quantity"
.DefaultValue = "1"
End With
ShoppingCartTable.Columns.Add(tableColumnQuantity)
Dim tableColumnPrice As System.Data.DataColumn = New System.Data.DataColumn
With tableColumnPrice
.DataType = System.Type.GetType("System.Int32")
.ColumnName = "Price"
.DefaultValue = "0"
End With
ShoppingCartTable.Columns.Add(tableColumnPrice)
Dim tableColumnTotalPrice As System.Data.DataColumn = New System.Data.DataColumn
With tableColumnTotalPrice
.DataType = System.Type.GetType("System.Int32")
.ColumnName = "TotalPrice"
.DefaultValue = "0"
End With
ShoppingCartTable.Columns.Add(tableColumnTotalPrice)
'create rows with products added to cart
Dim tableRow As System.Data.DataRow = ShoppingCartTable.NewRow()
Dim intMaxRows As Integer = shoppingCart.Count - 1
Dim i As Integer
Dim localObj As New Product()
For i = 0 To intMaxRows
localObj = shoppingCart(i)
tableRow = ShoppingCartTable.NewRow()
tableRow("ProductCode") = localObj.itemID
tableRow("Name") = localObj.itemName
tableRow("Quantity") = localObj.itemQuantity
tableRow("Price") = localObj.itemPrice
tableRow("TotalPrice") = localObj.itemQuantity * localObj.itemPrice
ShoppingCartTable.Rows.Add(tableRow)
Next
Me.dgDatagrid.DataSource = ShoppingCartTable
Me.dgDatagrid.DataBind()
End Sub
End Class
我的解决方案正确显示了 itemID,但是之后的一切都因上述错误而失败。
解决方案
也许这是访问修饰符(public
/ private
)的问题。尝试将类中的private
关键字更改为Product
public
推荐阅读
- java - 每次我想移动玩家时,迷宫都会绘制自己而不是玩家
- javascript - Firebase 检查节点是否存在返回 true 或 false
- date - 如何将十六进制日期值转换为配置单元中的日期值
- r - 如何具体更改条形图中的图例顺序?
- python - 从行数据更新python中的字典
- javascript - 为什么 _.isEqualWith() 不能按预期工作?
- youtube - 谷歌 G-Suite / Youtube
- rest - 当进程运行时请求被拒绝时,我应该返回什么 http 代码?
- java - 具有数组类型记录的嵌套 Avro 记录反序列化
- mysql - 我需要优化表和查询