Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.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# 失败,因为使用任务时返回值的T-SQL和CLR类型不匹配<;字符串>;_C#_Tsql - Fatal编程技术网

C# 失败,因为使用任务时返回值的T-SQL和CLR类型不匹配<;字符串>;

C# 失败,因为使用任务时返回值的T-SQL和CLR类型不匹配<;字符串>;,c#,tsql,C#,Tsql,使用任务作为返回类型时出错。当使用string作为返回类型进行测试时,它会工作 只返回string的函数起作用,但返回Task的函数不起作用 有什么解决办法吗 c#代码 你能发布成功的代码和失败的代码吗?谢谢发布您的代码,还有错误消息。您没有发布任何信息,因此无法猜测代码中的错误是什么。唯一可以确定的是,代码中有一个bug——您使用的是一种类型,而您应该使用另一种类型。也许您忘记了等待调用ExecuteScalarAsync或类似的东西?使用Task作为返回类型不会让方法在后台通过魔法运行。但如

使用
任务
作为返回类型时出错。当使用
string
作为返回类型进行测试时,它会工作

只返回
string
的函数起作用,但返回
Task
的函数不起作用

有什么解决办法吗

c#代码


你能发布成功的代码和失败的代码吗?谢谢发布您的代码,还有错误消息。您没有发布任何信息,因此无法猜测代码中的错误是什么。唯一可以确定的是,代码中有一个bug——您使用的是一种类型,而您应该使用另一种类型。也许您忘记了等待调用
ExecuteScalarAsync
或类似的东西?使用
Task
作为返回类型不会让方法在后台通过魔法运行。但如果尝试返回
string
,则会导致类型不匹配编译错误。添加
async
关键字将隐藏错误,但仍同步运行。没有代码,人们只能猜测问题是什么以及如何解决它-如果不希望异步执行,请将
任务
替换为
字符串
。如果您确实需要,请在签名中使用
异步任务
,并等待cmd.ExecuteScalarAsync
执行查询并获得结果。您好,我已经测试过该函数在c#下工作。问题是从SQL调用它时。我添加了代码
    public async static Task<string> LagreFil(string filNavn, string 
        filePath, string url) {

        var fileService = new FileService();
        return await fileService.LagreFilAsync(filNavn, filePath, url);
    }
      public static string LagreFilTest() {
        return "suksess";
    }
CREATE ASSEMBLY CL2
FROM 
'C:\xxx.dll'
WITH PERMISSION_SET unSAFE 
GO 

alter FUNCTION fnTEST2() RETURNS nvarchar(max)
EXTERNAL NAME CL2.[Tools.Files.library.Api.AttachmentsService].LagreFilTest;
select qq = dbo.fnTEST2()