'功能:保存数据
'参数:dataxml,Userxml
'返回值:bool
'创建人:彭松
'创建时间:2013-12-18
Function SavUserInfo(ByVal DataXml As String, ByVal UserXml As String) As String
Dim xmlDOM As New XmlDocument
Dim xmlDOMUser As New XmlDocument
Dim xmlNodeList As XmlNodeList
Dim xmlNodeGUID As XmlNodeList
Dim intRowCounts As Int16
'1. 获取并处理实体的数据 (DataXml)
MyDB.SaveXml(DataXml)
xmlDOM.LoadXml(DataXml)
'2. 获取并处理实体的数据 (UserDataXml)
If UserXml <> "" And UserXml <> "null" Then
xmlDOMUser.LoadXml(UserXml)
xmlNodeList = xmlDOMUser.SelectNodes("myxml/mysub")
xmlNodeGUID = xmlDOMUser.SelectNodes("myxml/myGUID")
Dim userGUID As String = xmlNodeGUID(0).InnerText
intRowCounts = xmlNodeList.Count
For i As Integer = 0 To intRowCounts - 1
Dim subGUID As String = xmlNodeList(i).ChildNodes(0).FirstChild.Value
Dim subName As String = xmlNodeList(i).ChildNodes(1).FirstChild.Value
Dim passedScore As String = xmlNodeList(i).ChildNodes(2).FirstChild.Value
Dim score As String = xmlNodeList(i).ChildNodes(3).FirstChild.Value
'校验是否存在用户填写的成绩比科目的总成绩大
Dim param = New With {.subguid = subGUID}
Dim objS As SSubject = CPQuery.From("select top 1 * from [s_subject] where SubGUID=@subguid", param).ToSingle(Of SSubject)()
If objS.WholeScore < score Then
Return "<xml result=""false"" errormessage=""填写数据过大,请与重新填写!""></xml>"
End If
'保存用户的考试成绩到s_User2Subject表
Dim paramOne = New With {.subguid = subGUID, .userguid = userGUID}
Dim objSub As SSubject = CPQuery.From("select top 1 * from [s_User2Subject] where SubGUID=@subguid and UserGUID=@userguid", paramOne).ToSingle(Of SSubject)()
If objSub Is Nothing Then
Dim strSql As String = " insert into s_User2Subject (User2SubGUID ,UserGUID ,SubGUID ,Score ) values(NEWID (),@userguid,@subguid,@score)"
Dim parameters = New With {.userguid = userGUID, .subguid = subGUID, .score = score}
'如果执行出错.ExecuteNonQuery方法将抛出异常.而不是返回-1
Try
CPQuery.From(strSql, parameters).ExecuteNonQuery()
Return "<xml result=""true"" keyvalue=""""></xml>"
'执行成功的业务逻辑
Catch ex As System.Exception
'执行失败的错误处理
Return "<xml result=""false"" errormessage=""运行时异常,请与管理员联系!""></xml>"
End Try
End If
Next
End If
Return "<xml result=""true"" keyvalue=""""></xml>"
End Function
这是vb的保存数据,主要是dataxml,和userxml。其中dataxml可以由appForm自动收集,userxml需要自己解析,然后调用小平台进行保存