检索到的值在C#中显示为null

时间:2017-12-21 03:41:42

标签: c# sql-server-2008

我正在尝试从存储过程中访问值检索值。我认为它检索值但它显示为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;
            }
        }
    }

哪部分代码错了?

任何人都可以用正确的方法帮助我吗?

2 个答案:

答案 0 :(得分:2)

DECLARE @temp1 TABLE (Details nvarchar(max));
select ColumnName,value into #temp1

@ temp1是一个表VARIABLE。

#temp1是一个临时表。

这是两个独立的变量,你应该使用其中一个,而不是两个。

答案 1 :(得分:0)

现在我得到了结果

  1. 更改临时表名称。

  2. 将'选择详细信息[会员详细信息]从@ temp1'替换为'select * from @ temp1'

  3. 任何人都可以告诉我们这两个查询之间的区别

    从@ temp1中选择详细信息[会员详细信息] //在c#code

    中显示null

    从@ temp1中选择* //显示值