gpt4 book ai didi

sql - System.Void' 不是映射存储过程方法的有效返回类型

转载 作者:行者123 更新时间:2023-12-03 00:34:12 25 4
gpt4 key购买 nike

我正在尝试从 asp.net 中的 LINQ 在 SQL-server 中执行 pro。当我在 SQL 中执行 Proc 时它工作正常,但是当我尝试从 linq 在 asp.net 中调用它时,它会抛出以下错误“System.Void”不是映射存储过程方法的有效返回类型”这是我的过程,

   ALTER PROCEDURE [dbo].[VIEW_COLUMN] 

@REPORT_NO INT ,
@TEMPLATE_NAME VARCHAR(100),
@BODY_TEXT VARCHAR(500),
@BODY_TEXT_O VARCHAR(500) OUTPUT

AS
BEGIN
--DECLARE VARIABLES--
DECLARE @BODY_TEXT VARCHAR(100)

----------- etc----
------etc etc-----
SET @BODY_TEXT_O = @BODY_TEXT
END

在我的 ASP.net 页面中,

    using (EHSIMSDataContext db = new EHSIMSDataContext(EHSIMSConnectionString.GetConnectionString()))
{

string MainString = _EmailTemp.TEMPLATE_TEXT;
int? R = 000001;
string b = "";
string temname = _EmailTemp.VIEW_NAME;
db.VIEW_COLUMN(R, temname, MainString, ref b);
}

出现错误后,我用谷歌搜索并将设计器页面更改为,(删除了 void 并添加了字符串并添加了最后一个返回行)

          public string VIEW_COLUMN ------etc
{
IExecuteResult result = this.ExecuteMethodCall(this, ((MethodInfo)(MethodInfo.GetCurrentMethod())), rEPORT_NO, tEMPLATE_NAME, bODY_TEXT, bODY_TEXT_O);
bODY_TEXT_O = ((string)(result.GetParameterValue(3)));
return ((string)(result.ReturnValue));
}

并且上述代码以及“Public Void VIEW_COLUMN”方法中没有返回,这仍然显示出一些不同的错误,我还尝试在程序属性的 DBML 文件中将字符串设置为返回类型还是没用,不知道少了什么。

其他信息我的程序中有一个临时表和表变量,可能是这个原因吗?

一些回复真的很有帮助......谢谢

最佳答案

你很接近;您需要将存储过程(在 dbml 内)的返回类型更改为 int。

Linq 实际上执行此 sql 命令,该命令以 int 形式返回执行结果:

DECLARE @ReturnValue int

EXEC @ReturnValue = [dbo].[VIEW_COLUMN]

SELECT 'ReturnValue' = @ReturnValue

关于sql - System.Void' 不是映射存储过程方法的有效返回类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17697163/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com