C#代码:
cWay类型是List<ContactWay> XMLContactWayClass wayClass = new XMLContactWayClass(); XmlContactWay xmlWay = null; List<XmlContactWay> list = new List<XmlContactWay>(); foreach (ContactWay way in cWay) { xmlWay = new XmlContactWay(); xmlWay.ContactWayType = way.ContactWayType; xmlWay.Way = way.Way; list.Add(xmlWay); } wayClass.XmlContactWay = list.ToArray(); string wayData = XmlHelper.ToXml<XMLContactWayClass>(wayClass); wayData = wayData.Replace("<?xml version="1.0" encoding="utf-8"?>", ""); _addrDatabase.MakeInParam("@ContactWay", SqlDbType.Xml, int.MaxValue, wayData)
SQL代码:添加
ALTER PROCEDURE [dbo].[Addr_SP_Contactor_AddMutilField] @ContactWay XML AS SET NOCOUNT ON /* <ContactWay> <Way> <WayType>1</WayType> <WayField>13810712519</WayField> </Way> <Way> <WayType>3</WayType> <WayField>346425159@qq.com</WayField> </Way> </ContactWay> */ INSERT INTO dbo.Addr_TB_ContactField ( Field, FieldType ) SELECT Field = T.c.value('(./WayField/text())[1]', 'VARCHAR(200)'), FieldType = T.c.value('(./WayType/text())[1]', 'INT') FROM @ContactWay.nodes('/ContactWay/Way') AS T(c)
SQL代码:更新
UPDATE A SET A.MemberCount = A.MemberCount + 1 FROM dbo.Addr_TB_ContactGroup A INNER JOIN ( SELECT ContactGroupID= T.b.value('(./GroupID/text())[1]', 'INT') FROM @ContactGroup.nodes('/ContactGroup/Group') AS T(b) ) B on A.ContactGroupID= B.ContactGroupID WHERE A.SeqNo=@SeqNo AND A.CompID=@CompID