我正在尝试从存储过程中访问值检索值。我认为它检索值但它显示为null。
我使用C#编码。
我的代码:
var result = cont1.somemethod("101");
var values = result .GetResult<sampleclass>().ToList<sampleclass>();// showing the retrieved 3 resultset values as null
我的方法:
[Function(Name = "sample_sp")]
[ResultType(typeof(sampleclass))]
public IMultipleResults somemethod([Parameter(DbType = "VarChar(100)")] string Id)
{
IExecuteResult result = this.ExecuteMethodCall(this, ((MethodInfo)(MethodInfo.GetCurrentMethod())),Id);
return ((IMultipleResults)(result.ReturnValue));
}
我的程序:
DECLARE @temp1 TABLE (Details nvarchar(max));
SELECT ColumnName, value
INTO #temp1
FROM
(SELECT
CAST(id AS NVARCHAR(MAX)) [ID],
CAST(firstname AS NVARCHAR(MAX)) [First Name],
CAST(lastname AS NVARCHAR(MAX)) [Last Name],
FROM
table1
WHERE
id = '101') d
UNPIVOT
(Value FOR
ColumnName IN ([ID], [First Name], [Last Name])
) unpiv;
SELECT Details[Member Details] FROM @temp1
存储过程调用的结果:
Member Details
---------------
ID : 101
First Name : aaa
Last Name : bbb
我的CS [sampleclass]文件,
private string _details;
[Column(Storage = "_details", DbType = "nvarchar(max)")]
public string details
{
get { return this._details; }
set {
if ((this._details != value))
{
this._details = value;
}
}
}
哪部分代码错了?
任何人都可以用正确的方法帮助我吗?
答案 0 :(得分:2)
DECLARE @temp1 TABLE (Details nvarchar(max));
select ColumnName,value into #temp1
@ temp1是一个表VARIABLE。
#temp1是一个临时表。
这是两个独立的变量,你应该使用其中一个,而不是两个。
答案 1 :(得分:0)
现在我得到了结果
更改临时表名称。
将'选择详细信息[会员详细信息]从@ temp1'替换为'select * from @ temp1'
任何人都可以告诉我们这两个查询之间的区别
从@ temp1中选择详细信息[会员详细信息] //在c#code
中显示null和
从@ temp1中选择* //显示值