我需要在 tblSysproStock 表的数据网格中显示信息。该表中包含浮点值的列,在我的应用程序中,我需要将 double 值转换为 float 值
我希望填充数据网格的编码:
private void FillSysproDataGrid()
{
using (DataClassesDataContext DC = new DataClassesDataContext())
{
dgSysproStock.ItemsSource = DC.tblSysproStocks.Where<tblSysproStock>(c => c.StockID != null)
.Select<tblSysproStock, SSData>(m => new SSData()
{
SID = m.StockID,
SCode = m.StockCode,
SDescription = m.StockDescription,
SConvFactAltUom = (float)m.ConvFactAltUom,
SConvMulDiv = m.ConvMulDiv,
SConvFactOthUom = (float)m.ConvFactOthUom,
SMulDiv = m.MulDiv,
SMass = (float)m.Mass,
SUpdatedSupplier = m.UpdatedSupplier,
SCycleCount = (float)m.CycleCount,
SProductClass = (float)m.ProductClass,
SUnitCost = (float)m.UnitCost,
SSegal = m.Segal,
SWareHouse = m.Warehouse,
SMinimumStock = (float)m.MinimumStock,
SMaximumStock = (float)m.MaximumStock,
SStockForNow = (float)m.StockForNow,
SStockCount = m.StockCount,
SValue = (float)m.Value,
});
}
}
我将我的值从我的表等同于我的SSData类:
public struct SSData
{
public string _ss;
public int SID { get; set; }
public string SCode { get; set; }
public string SDescription { get; set; }
public float SConvFactAltUom { get; set; }
public string SConvMulDiv { get; set; }
public float SConvFactOthUom { get; set; }
public string SMulDiv { get; set; }
public float SMass { get; set; }
public string SUpdatedSupplier { get; set; }
public float SCycleCount { get; set; }
public float SProductClass { get; set; }
public float SUnitCost { get; set; }
public string SSegal { get; set; }
public string SWareHouse { get; set; }
public float SMinimumStock { get; set; }
public float SMaximumStock { get; set; }
public float SStockForNow { get; set; }
public string SStockCount { get; set; }
public float SValue { get; set; }
}
现在我得到的错误是 -
无法将null值分配给类型为System.Single的成员,该类型是不可为空的值类型。当我运行应用程序时。
我认为转换就是问题所在?任何有任何建议或解决方案的人都会很棒!谢谢。
编辑:@Greg,好吧我使用了新的编码,这是一个片段: using (DataClassesDataContext DC = new DataClassesDataContext())
{
dgSysproStock.ItemsSource = DC.tblSysproStocks.Where<tblSysproStock>(c => c.StockID != null)
.Select<tblSysproStock, SSData>(m => new SSData()
{
SID = m.StockID,
SCode = m.StockCode,
SDescription = m.StockDescription,
float.TryParse(m.ConvFactAltUom, out SConvFactAltUom),
});
}
大声笑,我得到的错误是 -
无效的初始化成员声明符
我对编码很新,我认为我可能正在使用你给错误编码的编码?
答案 0 :(得分:0)
您可以使用
float.TryParse(m.ConvFactAltUom, out SConvFactAltUom);
只是为了确保它有效。如果可能的话,它会将值转换为float,或保持属性不变,不会抛出异常。