Ниже приведен код vb. net, который читает строку json, а затем он копирует в SQL.
. Я получаю сообщение об ошибке, когда он копирует в сервер sql, говоря «Неверные данные». тип "
Проблема с форматом даты столбца (" idt "). Если я не включаю этот столбец в копию SQLBulk, то он успешно вставляет остальные данные в SQL.
Dim JsonP As JObject = JObject.Parse(decodedString)
Dim SetPointerOut As JToken = JsonP("b2b")
Try
Dim i as Integer = 0
Dim j as Integer = 0
For Each itemout as Object In SetPointerOut
Dim SetPointerIn As JToken = JsonP("b2b")(i)("inv")
For Each itemin as Object In SetPointerIn
Dim SetPointerInSub As JToken = JsonP("b2b")(i)("inv")(j)("itms")
For Each iteminsub as Object In SetPointerInSub
Dim NewDRinsub As DataRow = TempDT.NewRow
NewDRinsub("ctin") = itemout("ctin")
NewDRinsub("cfs") = itemout("cfs")
NewDRinsub("val") = itemin("val")
NewDRinsub("inv_typ") = itemin("inv_typ")
NewDRinsub("pos") = itemin("pos")
NewDRinsub("idt") = itemin("idt") --- **source json has this date in format "dd-mm-yyyy"
NewDRinsub("rchrg") = itemin("rchrg")
NewDRinsub("inum") = itemin("inum")
NewDRinsub("chksum") = itemin("chksum")
TempDT.Rows.Add(NewDRinsub)
Next
j = j + 1
Next
i += 1
j = 0
Next
Using sqlBulkCopy As New SqlBulkCopy(Mycon.mConnection, SqlBulkCopyOptions.FireTriggers, Nothing)
sqlBulkCopy.DestinationTableName = "GST2_B2B"
sqlBulkCopy.ColumnMappings.Add("ctin", "PartyGSTNo")
sqlBulkCopy.ColumnMappings.Add("cfs", "CFS")
sqlBulkCopy.ColumnMappings.Add("val", "Invoice_Value")
sqlBulkCopy.ColumnMappings.Add("inv_typ", "Invoice_Type")
sqlBulkCopy.ColumnMappings.Add("pos", "StateCode")
sqlBulkCopy.ColumnMappings.Add("idt", "Invoice_Date") --- source json has this date in format "dd-mm-yyyy"
sqlBulkCopy.ColumnMappings.Add("rchrg", "ReverseCharge")
sqlBulkCopy.ColumnMappings.Add("inum", "Invoice_Number")
sqlBulkCopy.ColumnMappings.Add("chksum", "CHKSUM")
sqlBulkCopy.ColumnMappings.Add("period", "Period")
sqlBulkCopy.BulkCopyTimeout = 120
sqlBulkCopy.WriteToServer(TempDT) -- error at this stage
--- Getting error at this stage, saying "Invalid datatype", and that is because of column sqlBulkCopy.ColumnMappings.Add("idt", "Invoice_Date")
End Using
, как сказано, если я удаляю sqlBulkCopy.ColumnMappings.Add ("idt", «Invoice_Date»), то работает хорошо. Я думаю, у Bulkcopy есть какая-то проблема с dateformt столбца "idt" в vb. net datatable.
Итак, как мне решить эту проблему с форматированием даты?
как мне преобразовать json дату в формат vb. net в строке кода, отмеченной выше комментарием?