通过REST我使用和反序列化一个Json文件(这里我使用VB但是C#解决方案也会很好)
Dim allDATA As List(Of GeneralInfo) = JsonConvert.DeserializeObject(Of List(Of GeneralInfo))(jstr)
并将其存储在对象
中Public Class FullData
Public Property userRunID As ULong
Public Property data As List(Of String)
End Class
Public Class GeneralInfo
Public Property id As ULong
Public Property name As String
Public Property data As List(Of FullData)
End Class
在调试模式下,我可以单击对象并查看所有数据。现在我想将数据存储在数据库中。为此我在FullData上创建了两个带有额外GeneralInfoId col的表来提供关系。使用此代码我想写数据
Private Shared Sub AddData(ByRef myGDI As GeneralInfo)
...
Using command As SqlCommand = New SqlCommand("INSERT INTO GeneralInfo VALUES(@id, @name)", con)
command.Parameters.Add(New SqlParameter("id", myGDI.id))
command.Parameters.Add(New SqlParameter("name", myGDI.name))
command.ExecuteNonQuery()
End Using
Using command As SqlCommand = New SqlCommand("INSERT INTO FullData VALUES(@GeneralInfoID, @userRunID, @data)", con)
command.Parameters.Add(New SqlParameter("GeneralInfoID", myGDI.id))
command.Parameters.Add(New SqlParameter("userRunID", myGDI.))
command.Parameters.Add(New SqlParameter("data", myGDI.))
command.ExecuteNonQuery()
End Using
...
End Sub
如您所见,我不知道如何访问FullData
对象(myGDI.???
)数据。谁可以帮助我?
编辑:
我在json文件中获取公司所有参与者的调查数据。 generalinfo
对象包含有关公司的数据(ID,公司名称)data
属性包含参与者的数据列表,如个人ID(userRunID
)和他们的问题data
喜欢姓名,每个问题的结果(Simon; Garfunkel; 1; 2; 3; 5; 5; 4; 4; ...)。
我想将这些数据写入数据库。将数据保存在Fulldata.data中作为数据库中的字符串,可以(首先关闭)。
答案 0 :(得分:0)
你需要在myGDI.data上做一个foreach:
Private Shared Sub AddData(ByRef myGDI As GeneralInfo)
...
Using command As SqlCommand = New SqlCommand("INSERT INTO GeneralInfo VALUES(@id, @name)", con)
command.Parameters.Add(New SqlParameter("id", myGDI.id))
command.Parameters.Add(New SqlParameter("name", myGDI.name))
command.ExecuteNonQuery()
End Using
' Foearch here
Foreach myData as FullData in myGdi.data
Using command As SqlCommand = New SqlCommand("INSERT INTO FullData VALUES(@GeneralInfoID, @userRunID, @data)", con)
command.Parameters.Add(New SqlParameter("GeneralInfoID", myGDI.id))
' Use myData here
command.Parameters.Add(New SqlParameter("userRunID", myData.userRunId))
command.Parameters.Add(New SqlParameter("data", myData.data))
command.ExecuteNonQuery()
End Using
Next
...
End Sub