c# - 将值数组传递给 .net 紧凑框架中的 SQL 存储过程

标签 c# sql .net-cf-3.5

我正在开发 Windows 应用程序 (Windows CE),我需要将 ID 数组发送到存储过程(存储在 SQL Server 2012 中)。

我正在研究 .net compact framework 3.5 和 C#。

我检查了将列表作为 XML 属性和表值参数传递的方法,但在紧凑型框架中都给我同样的错误。

无效的枚举类型 SqlDbType.XML 无效的枚举类型 SqlDbType.Structured

Havent 发现任何说这些在紧凑框架中不受支持但它们也不起作用的东西。

我还可以采用什么其他方法。

最佳答案

如果您只需要传递 ID,那么也许这个函数可以帮助您:

ALTER FUNCTION [dbo].[fn_SplitIds]
(
    @text nvarchar(max)
)
RETURNS @Ids TABLE
(
    Id int UNIQUE
) 
AS
BEGIN

declare     @iStart int,
            @iPos int
if substring( @text, 1, 1 ) = ',' 
begin
    set     @iStart = 2
    insert into @Ids
    values( null )
end
else 
    set     @iStart = 1
while 1=1
begin
    set     @iPos = charindex( ',', @text, @iStart )
    if @iPos = 0
            set     @iPos = len( @text )+1
    if @iPos - @iStart > 0                  
            insert into @Ids
            values  ( cast(substring( @text, @iStart, @iPos-@iStart ) as int))
    else
            insert into @Ids
            values( null )
    set     @iStart = @iPos+1
    if @iStart > len( @text ) 
            break
end

RETURN
END

我们在我们的项目中使用它来支持一些遗留的东西并且它工作正常。只需传递以逗号“,”分隔的整数。

您不需要创建函数。

关于c# - 将值数组传递给 .net 紧凑框架中的 SQL 存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17023757/

相关文章:

c# - 将 Lambda 表达式树与 IEnumerable 结合使用

mysql - 寻求软件建议外键

sql - 在SQL Server 2008中加入Row_Number()

c# - 尽管已经执行了依赖于 Func`2 的代码,但 WinCE 上的 Func`2<> 出现 MissingMethodException

c# - 在迭代器的 finally block 中获取对异常的引用

c# - 我可以使用 <inheritdoc cref> 来引用另一个变量的 XML 摘要吗?

c# - 异步等待直到加载表单以继续

mysql - 选择列出所有事件的最近事件 SQL

c# - 如何使用命令行重建 .net CF 应用程序并在 Windows 移动模拟器中部署