c# - 拆分字符串或 XML 以将 ID 发送到存储过程?

标签 c# sql-server-2008 sql-server-2005

我有一个用 C# 编写的应用程序,必须将一个 ID (int) 列表发送到我在 SQL Server 中的数据库以进行一些连接。我在内存中有数据集中的 ID 列表。

我知道有两种方法:一种是创建一个字符串,id 由竖线分隔,然后在 sql 中拆分它们,将它们插入到临时表中。然后我可以进行我想要的连接。

另一种方法是对我的数据集执行“getXML”,然后发送它。然后,我可以将信息插入到临时表中,并执行我想要的连接。

哪种方式更好,为什么?或者比两者都更好的选择?

要传递的 ID 数量是可变的,使用 SQL Server 2005 和 SQL Server 2008,Visual Studio 2010。

最佳答案

我认为 XML 更好,因为它更健壮。它是 self 记录的,您不必担心分隔符,您甚至可以根据 XSD 验证传入的 XML。如果您的数据包含您的分隔符和其他变幻莫测的字符,您将使用分隔字符串来处理它。解析是可行的,但最好不要重新发明轮子,尤其是对于已经运行良好的东西。

这是一个 nice and tidy sample from Pinal Dave让你继续。您的概念验证可能更简单。

关于c# - 拆分字符串或 XML 以将 ID 发送到存储过程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10953848/

相关文章:

mysql - 为什么我会收到内存分配错误?

javascript - 访问结果集中数据类型为 varchar(max) 的字段

c# - 在一种方法中使用多个 RETURN 语句是一种好习惯吗?

c# - 为什么我们不能在类级别声明 var a = new List<string> ?

sql - 如何在查询中使用除法函数?

sql - 在 SQL Server 上的特定位置添加列?

c# - 是C#编译器还是CLR禁止多重继承

c# - 在webapi中认证后反序列化json对象

c# - SQL 服务器 2008 : update query

sql-server-2005 - 根据同一个表上的子查询更新表中的行