Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/318.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# 如何将数组/列表从程序集返回到SQL Server中的存储过程?_C#_Sql Server_Stored Procedures_.net Assembly_Sqldatatypes - Fatal编程技术网

C# 如何将数组/列表从程序集返回到SQL Server中的存储过程?

C# 如何将数组/列表从程序集返回到SQL Server中的存储过程?,c#,sql-server,stored-procedures,.net-assembly,sqldatatypes,C#,Sql Server,Stored Procedures,.net Assembly,Sqldatatypes,我有一个存储过程,它接受字符串并提取以“@”开头的子字符串。我决定为此使用C#DLL,并使用SQL程序集访问此DLL。因此,我在C#中开发了以下方法: [Microsoft.SqlServer.Server.SqlFunction] 公共静态?GetSubstring(字符串文本) { 列表ID=新列表(); foreach(Match Match in Regex.Matches(text,@)(?若要执行此操作,需要将函数设置为a,这将使函数返回一个表而不是单个结果。若要执行此操作,需要使用

我有一个存储过程,它接受字符串并提取以“@”开头的子字符串。我决定为此使用C#DLL,并使用SQL程序集访问此DLL。因此,我在C#中开发了以下方法:

[Microsoft.SqlServer.Server.SqlFunction]
公共静态?GetSubstring(字符串文本)
{
列表ID=新列表();

foreach(Match Match in Regex.Matches(text,@)(?若要执行此操作,需要将函数设置为a,这将使函数返回一个表而不是单个结果。若要执行此操作,需要使用属性并将返回类型设置为a
IEnumerable

[Microsoft.SqlServer.Server.SqlFunction(TableDefinition="IDs nvarchar(max)"]
public static IEnumerable GetSubStrings(string text)
{
       List<string> IDs=new List<string>();
       foreach (Match match in Regex.Matches(text, @"(?<!\w)@\w+"))
       {
           try
           {
                IDs.Add(match.Value.Replace("@", ""));
           }
           catch (NullReferenceException) { continue; }
       }
       return IDs;
}
[Microsoft.SqlServer.Server.SqlFunction(TableDefinition=“IDs nvarchar(max)”]
公共静态IEnumerable GetSubstring(字符串文本)
{
列表ID=新列表();

foreach(Regex.Matches中的Match Match(text,@)(?当您使用调试器逐步检查代码时..在执行这一行之前,
Match
的值是多少?
IDs.Add(Match.value.Replace(“@)”);
如果
Match包含@
则在
IDs.Add(Match.value.Replace(“@)”,”)上方添加一行;
和do
match=match.Replace(“@”和“”)
然后执行id.Add(匹配)
@MethodMan此方法工作正常,但问题是当返回到SQL存储过程时,我的方法的返回类型应该是什么。正则表达式代码不是我的问题。如果看到存储过程,我们可以确定它是否应该是DataTable、IEnumerable、String、Int等,那当然很好。。。
[Microsoft.SqlServer.Server.SqlFunction(TableDefinition="IDs nvarchar(max)"]
public static IEnumerable GetSubStrings(string text)
{
       List<string> IDs=new List<string>();
       foreach (Match match in Regex.Matches(text, @"(?<!\w)@\w+"))
       {
           try
           {
                IDs.Add(match.Value.Replace("@", ""));
           }
           catch (NullReferenceException) { continue; }
       }
       return IDs;
}