Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将可变数量的参数传递给存储的进程_C#_.net_Mysql - Fatal编程技术网

C# 将可变数量的参数传递给存储的进程

C# 将可变数量的参数传递给存储的进程,c#,.net,mysql,C#,.net,Mysql,我试图将数量可变的参数传递到MySql存储过程中。我在SQLServer中通过使用xml或解析带分隔符的列表实现了这一点。我猜我可以在MySql中解析列表,但是还有其他选择吗 我想做的是我有一个配置,它存储了一个要返回的数据过滤器。该过滤器基于与需要返回的字段相对应的类别(基于公司的可变编号)。我非常想用这些配置的类别ID编写一个“IN”子句,但我通过存储过程完成所有工作 如果要从C#转到MySql,有很多代码选项。它们的基本形式是创建一个传递所有参数的函数。然后将其封装在一个机制中,该机制允许

我试图将数量可变的参数传递到MySql存储过程中。我在SQLServer中通过使用xml或解析带分隔符的列表实现了这一点。我猜我可以在MySql中解析列表,但是还有其他选择吗


我想做的是我有一个配置,它存储了一个要返回的数据过滤器。该过滤器基于与需要返回的字段相对应的类别(基于公司的可变编号)。我非常想用这些配置的类别ID编写一个“IN”子句,但我通过存储过程完成所有工作

如果要从C#转到MySql,有很多代码选项。它们的基本形式是创建一个传递所有参数的函数。然后将其封装在一个机制中,该机制允许您仅指定在特定情况下关心的参数,并为其余参数设置默认值

您可以使用对象初始值设定项、匿名类、列表、变量参数函数以及其他一些我没有想到的东西来实现这一点


如果这符合您的设计目标,请选择一种机制并询问更多信息。

如果您要从C#转到MySql,则有很多代码选项。它们的基本形式是创建一个传递所有参数的函数。然后将其封装在一个机制中,该机制允许您仅指定在特定情况下关心的参数,并为其余参数设置默认值

您可以使用对象初始值设定项、匿名类、列表、变量参数函数以及其他一些我没有想到的东西来实现这一点

如果这符合您的设计目标,请选择一种机制并询问更多信息。

例如,您可以在存储的进程中创建“存根”输入参数,并

CREATE PROCEDURE [dbo].[ThisTakesMultipleOptionalParameters

@SerialNumber int = null, 
@ProductName nvarchar(100) = null 

AS
然后,您可以使用指定的一个或多个参数执行它,也可以不指定

EXEC dbo.ThisTakesMultipleOptionalParameters @ProductName='Doritos' 

EXEC dbo.ThisTakesMultipleOptionalParameters @SerialNumber=666

EXEC dbo.ThisTakesMultipleOptionalParameters @SerialNumber=696, @ProductName='Juicy Bits'
例如,您可以在存储的进程中创建“存根”输入参数,并

CREATE PROCEDURE [dbo].[ThisTakesMultipleOptionalParameters

@SerialNumber int = null, 
@ProductName nvarchar(100) = null 

AS
然后,您可以使用指定的一个或多个参数执行它,也可以不指定

EXEC dbo.ThisTakesMultipleOptionalParameters @ProductName='Doritos' 

EXEC dbo.ThisTakesMultipleOptionalParameters @SerialNumber=666

EXEC dbo.ThisTakesMultipleOptionalParameters @SerialNumber=696, @ProductName='Juicy Bits'

一般来说,我建议不要这样做;你能给我们举个例子,说明你为什么这样做,以及你是如何做的,这样我们可能会给出更好的建议吗?补充了一些关于这个问题的更多细节。一般来说,我建议不要这样做;你们能给我们举个例子说明你们为什么这么做,以及你们是如何做的,这样我们可能会给出更好的建议吗?补充了一些问题的细节