C# 您能解释一下吗?您在服务器上创建XML,并将其作为XML文档传递到数据库(EXEC sp_XML_PreparedDocument之前的所有内容)。然后,数据库知道如何将该文档视为一个表,您可以使用一个简单的存储过程来执行插入/更新/删除操作。所以你只有一
C# 您能解释一下吗?您在服务器上创建XML,并将其作为XML文档传递到数据库(EXEC sp_XML_PreparedDocument之前的所有内容)。然后,数据库知道如何将该文档视为一个表,您可以使用一个简单的存储过程来执行插入/更新/删除操作。所以你只有一,c#,asp.net,sql-server,repeater,C#,Asp.net,Sql Server,Repeater,您能解释一下吗?您在服务器上创建XML,并将其作为XML文档传递到数据库(EXEC sp_XML_PreparedDocument之前的所有内容)。然后,数据库知道如何将该文档视为一个表,您可以使用一个简单的存储过程来执行插入/更新/删除操作。所以你只有一个数据库呼叫。谢谢。我一直在等待最简单的答复。当我没有得到任何答复时,我对这种方法做了一些修改,最终使它发挥了作用。再次感谢!嗨,我在找一件和这一模一样的东西。我确实想到了这一点。但问题是,如何让复选框传递参数?一旦选中更改,将不会绑定中继器,
您能解释一下吗?您在服务器上创建XML,并将其作为XML文档传递到数据库(EXEC sp_XML_PreparedDocument之前的所有内容)。然后,数据库知道如何将该文档视为一个表,您可以使用一个简单的存储过程来执行插入/更新/删除操作。所以你只有一个数据库呼叫。谢谢。我一直在等待最简单的答复。当我没有得到任何答复时,我对这种方法做了一些修改,最终使它发挥了作用。再次感谢!嗨,我在找一件和这一模一样的东西。我确实想到了这一点。但问题是,如何让复选框传递参数?一旦选中更改,将不会绑定中继器,我无法获取行详细信息。此外,复选框没有CommandArgument。。我该怎么做呢?(我也熟悉ajax和javascript)抱歉@iamsearchy,我可能需要一段时间才能原型化一些东西。我已经离开ASP.NET,所以我没有立即的答复。
Username HasIpod HasGymMembership HasCar
``````````````````````````````````````````````````````````````
User1 chcekbox checkbox checkbox
User2 chcekbox checkbox checkbox
User3 chcekbox checkbox checkbox
User4 chcekbox checkbox checkbox
user1id,1,0,1;user1id,0,1,1
delete from HasIPodTable
where UserID IN (firstUncheckedUserID, secondUncheckedUserID, ...)
insert into HasIPodTable
select firstCheckedUserID
UNION
select secondCheckedUserID
...
DECLARE @DocHandle int
DECLARE @XmlDocument nvarchar(1000)
SET @XmlDocument = N'<ROOT>
<User Username="user1" HasIpod="1" HasGymMembership="1" HasCar="0" />
<User Username="user2" HasIpod="1" HasGymMembership="0" HasCar="1" />
<User Username="user3" HasIpod="0" HasGymMembership="1" HasCar="0" />
<User Username="user4" HasIpod="0" HasGymMembership="0" HasCar="1" />
</ROOT>'
EXEC sp_xml_preparedocument @DocHandle OUTPUT, @XmlDocument
SELECT *
FROM OPENXML (@DocHandle, '/ROOT/User',1)
WITH (Username varchar(100),
HasIpod bit,
HasGymMembership bit,
HasCar bit)
/* ... update your tables here ... */
EXEC sp_xml_removedocument @DocHandle
DECLARE @DocHandle int
DECLARE @XmlDocument nvarchar(1000)
SET @XmlDocument = N'<root>
<added>
<ipod userID="1" />
<ipod userID="2" />
<gym userID="1" />
<gym userID="3" />
<car userID="2" />
<car userID="4" />
</added>
<removed>
<ipod userID="3" />
<ipod userID="5" />
<gym userID="4" />
<gym userID="5" />
<car userID="1" />
<car userID="3" />
</removed>
</root>'
EXEC sp_xml_preparedocument @DocHandle OUTPUT, @XmlDocument
insert into HasIPodTable SELECT * FROM OPENXML (@DocHandle, '/root/added/ipod',1) WITH (userID int)
delete HasIPodTable where userID in (SELECT * FROM OPENXML (@DocHandle, '/root/removed/ipod',1) WITH (userID int))
/* and the same for the others ... */
EXEC sp_xml_removedocument @DocHandle