Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.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
Sql server SQL返回脚本未返回数据_Sql Server_Asp.net Core - Fatal编程技术网

Sql server SQL返回脚本未返回数据

Sql server SQL返回脚本未返回数据,sql-server,asp.net-core,Sql Server,Asp.net Core,我有一个不返回数据的Sql Server脚本。我的.net变量返回为null。我有其他脚本以同样的方式构建,它们返回的很好 public List<float> FlowerTotal { get; set; } public List<float> TrimTotal { get; set; } public List<float> WasteTotal { get; set; } public List<int>

我有一个不返回数据的Sql Server脚本。我的.net变量返回为null。我有其他脚本以同样的方式构建,它们返回的很好

    public List<float> FlowerTotal { get; set; }
    public List<float> TrimTotal { get; set; }
    public List<float> WasteTotal { get; set; }
    public List<int> result = new List<int>();
    public List<List<float>> resultTotal = new List<List<float>>();

    public List<List<float>> TotalReturns(int FileID)
    {
        using (SqlConnection myConn = new SqlConnection(cs))
        {
            SqlCommand returnTotal = new SqlCommand();
            returnTotal.Connection = myConn;
            myConn.Open();

            returnTotal.Parameters.AddWithValue("@fileID", FileID);

            returnTotal.CommandText = ("[spHarvestedCannabisTotalReturn]");
            returnTotal.CommandType = CommandType.StoredProcedure;
            using (SqlDataReader reader = returnTotal.ExecuteReader())
            {
                 while (reader.Read())
                 {
                     if(FlowerTotal != null)
                         {
                              FlowerTotal.Add(reader.GetFloat(0));
                              TrimTotal.Add(reader.GetFloat(1));
                              WasteTotal.Add(reader.GetFloat(2));
                           }
                  }
                      resultTotal.Add(FlowerTotal);
                      resultTotal.Add(TrimTotal);
                      resultTotal.Add(WasteTotal);
                      reader.Close();          
            }
            returnTotal.Cancel();
            myConn.Close();
            return resultTotal;
        }
     }

我下面的变量返回为空,我做错了什么?在正确方向上的任何帮助都将是巨大的

FlowerTotal.Add(reader.GetFloat(0));
TrimTotal.Add(reader.GetFloat(1));
WasteTotal.Add(reader.GetFloat(2));

如果(FlowerTotal!=null)阻止将结果添加到列表中,则有一行
if(FlowerTotal!=null)
。确保所有列表都已初始化

我认为您可以删除sp并将其简化为:

[spHarvestedCannabisTotalReturn]
@fileID int
AS
BEGIN
        SELECT [Flowers(F)], [Trim(T)], WasteMaterial
        FROM   dbo.HarvestedCannabis
        WHERE  FileID = @fileID
END
未使用该变量
public List result=new List()


为什么这里有一个
列表
<代码>公共列表结果总计=新列表()

是否
spharvestedcananabistotalreturn
返回数据?@DanB当我在SQL中运行sp时,是的,它没有问题1是您不能按顺序多次使用RETURN返回多个值。问题2是您不应该使用return向调用者提供数据(按照惯例,它用于指示成功或失败)。问题3-您从未设置过程中声明的局部变量-但这基本上是无关的,因为您的过程应该“返回”结果集。它可以做到这一点,但您需要解决上述问题。在过程的第一行添加“set nocount on”(设置无计数)。为什么要使用
RETURN
3次?这不适用于
返回
适用于。如果要返回标量值(而不是数据集或数据集的附加值),请使用
OUTPUT
parameters。您从未为变量赋值(例如
@flower
,因此我不知道它们为什么会出现)。若要继续,请不要使用。修复过程并在应用程序中正确参数化查询后,您应该能够检索结果集。
[spHarvestedCannabisTotalReturn]
@fileID int
AS
BEGIN
        SELECT [Flowers(F)], [Trim(T)], WasteMaterial
        FROM   dbo.HarvestedCannabis
        WHERE  FileID = @fileID
END