将double转换为float C#WPF

时间:2015-05-06 11:08:35

标签: c# wpf linq datagrid

我需要在 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),
            });
    }

大声笑,我得到的错误是 -

  

无效的初始化成员声明符

我对编码很新,我认为我可能正在使用你给错误编码的编码?

1 个答案:

答案 0 :(得分:0)

您可以使用

 float.TryParse(m.ConvFactAltUom, out SConvFactAltUom);

只是为了确保它有效。如果可能的话,它会将值转换为float,或保持属性不变,不会抛出异常。