【问题标题】:How can I save values from a textbox (input == text) as Currency values in Sharepoint?如何将文本框中的值(输入 == 文本)保存为 Sharepoint 中的货币值?
【发布时间】:2015-06-08 22:15:58
【问题描述】:

我的 Sharepoint 列表值是货币,例如:

list.Fields.Add("Airfare", SPFieldType.Currency, false);

但是如何将这些值作为货币类型保存到列表中?

我试过这个:

spli["Airfare"] = (SPFieldType.Currency) boxAirfare.Text;

..还有这个:

spli["Airfare"] = boxAirfare.Text as SPFieldType.Currency;

...但他们不会编译,告诉我,“'Microsoft.SharePoint.SPFieldType.Currency' 是一个'字段',但用作'类型'

然后我尝试转换 val,但发现,令我失望的是(在这一年中为时已晚,令人沮丧),那里没有货币类型。甚至似乎是次佳(甚至更好,如果不是这样)的选择,即十进制,也暗示了这种尝试的悲惨命运:

这是真的吗 - 转换为 Decimal 总是失败?注意:“Convert.ToDouble”会发出同样可怕的警告。

我是否注定将 vals 存储为 String,并根据需要进行 hocus pocus 以将它们视为金钱 vals?

注意:关于在 Sharepoint 中使用哪种数据类型来赚钱的相关问题是 here

【问题讨论】:

    标签: c# sharepoint-2010 decimal currency typeconverter


    【解决方案1】:

    Convert.ToDouble() 应该可以正常工作(或 double.Parse())。

    您看到的警告与尝试将 DateTime 转换为十进制/双精度有关。如果您查看转换字符串的重载版本,我怀疑您不会看到这样的警告。

    试试:

    //assumes input has been validated
    spli["Airfare"] = double.Parse(boxAirfare.Text);
    

    【讨论】:

    • 十进制可以吗?我记得,对于货币 vals,Decimal 优于 Double。
    • 一般来说,是的,但您会发现 SharePoint 的实现通常非常愚蠢。您可以尝试将值设置为小数以查看其工作原理,但我相信它将存储在数据库中/作为双精度检索。
    猜你喜欢
    • 1970-01-01
    • 2018-10-06
    • 2015-07-11
    • 2011-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多