我有一个Excel电子表格,其中有几列设置为货币格式。我将电子表格转换为JSON,如下所示:
[{"Date":"5/31/18","Project ID":"2070","Project Description":"Director's Program","Beginning Balance":"$0.00 ","Adjustments":"$0.00 ","Net Change":"$0.00 ","Ending Balance":"$0.00 "},{"Date":"5/31/18","Project ID":"2327","Project Description":"Bone Marrow Transplant","Beginning Balance":"$3,053.84 ","Adjustments":"$0.00 ","Net Change":"$117.89 ","Ending Balance":"$3,171.73 "}
在VB.NET Web服务(ASMX)中使用
Dim JObject = JsonConvert.DeserializeObject(Of Resultslist())(JSONString)
我将字符串发送到具有将其更改为类的类的Web服务
<JsonProperty(PropertyName:="Beginning Balance")>
Public Property Beginning() As Decimal
我想要做的是将其发送到存储过程,但是将字符串转换为小数时出现错误
command.Parameters.Add("@Beginniing", SqlDbType.Money).Value = JObject(i).Beginning
SQL Server数据库中的数据类型为Money
。因此Excel将其称为Currency,JSON希望将其设为字符串,Web服务为小数,数据库为Money
。我对Excel电子表格的访问权限有限,如果这是唯一的手段,也许可以更改数据类型,但如果可能的话,我想避免这样做。
我应该把所有东西都串起来然后用手指交叉吗?哎呀,谢谢-
答案 0 :(得分:2)
如果您删除了货币符号,它可能会正常工作而不会出错(这确实有助于在问题中发布实际错误)
command
.Parameters
.Add("@Beginniing", SqlDbType.Money)
.Value = JObject(i).Beginning.Replace("$","");
尽管您总是会遇到将excel作为源的麻烦-它是一种邀请无效数据的格式。