use*_*815 6 sql linq sql-server sql-server-2008 linq-to-sql
我正在尝试从 asp.net 中的 LINQ 在 SQL-server 中执行 pro。当我在 SQL 中执行 Proc 时它工作正常,但是当我尝试从 asp.net 中的 linq 调用它时,它会抛出以下错误“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
Run Code Online (Sandbox Code Playgroud)
在我的 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);
}
Run Code Online (Sandbox Code Playgroud)
错误后,我用谷歌搜索并将我的设计器页面更改为,(删除了无效并添加了字符串并添加了最后一个返回行)
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));
}
Run Code Online (Sandbox Code Playgroud)
并且上面的代码中没有返回以及“Public Void VIEW_COLUMN”的方法,这仍然显示了一些不同的错误,我也尝试在我的程序属性的DBML文件中将字符串设置为返回类型仍然没有用,don不知道缺少什么。
附加信息 在我的程序中有一个临时表和表变量,可能是这个原因吗?
一些回复会非常有帮助...谢谢
尝试更改存储过程,以便它直接返回文本,而不是通过输出参数。
在末尾添加一行:
SELECT @BODY_TEXT_O;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4514 次 |
| 最近记录: |