SQL-скрипт возврата не возвращает данные - PullRequest
0 голосов
/ 11 июля 2019

У меня есть сценарий Sql Server, который не возвращает данные.Мои переменные .net возвращаются как нуль.У меня есть другие сценарии, построенные таким же образом, которые возвращают нормально.

    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;
        }
     }

    [spHarvestedCannabisTotalReturn]
        @fileID int
        AS
        BEGIN
        DECLARE
            @flower FLOAT,
            @trim FLOAT,
            @waste FLOAT

                SELECT [Flowers(F)], [Trim(T)], WasteMaterial FROM 
        dbo.HarvestedCannabis
                WHERE FileID = @fileID

                RETURN @flower
                RETURN @trim
                RETURN @waste

        END

Мои переменные ниже возвращаются как нулевые. Что я делаю неправильно?любая помощь в правильном направлении была бы велика

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

1 Ответ

0 голосов
/ 11 июля 2019

Эта строка if(FlowerTotal != null) запрещает добавление результата в список <>. Убедитесь, что весь ваш список <> инициализирован.

Я думаю, что вы можете удалить упростить ваш SP до:

[spHarvestedCannabisTotalReturn]
@fileID int
AS
BEGIN
        SELECT [Flowers(F)], [Trim(T)], WasteMaterial
        FROM   dbo.HarvestedCannabis
        WHERE  FileID = @fileID
END

Эта переменная не используется public List<int> result = new List<int>();

Почему list<list<>> здесь? public List<List<float>> resultTotal = new List<List<float>>();

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...