sql - sql(dr) 正在发送丢失的结果

我将我从 sql 获取的数据传输到列表中,但它每次都会发送 1 个丢失的数据,sql 命令可以正常工作。在 c# 中工作不正确如果 sql 中有 10 个数据,它会提取其中的 9 个。

SqlCommand komut = new SqlCommand("EXEC AnalysisUnitCorrect ", Datacon.baglanti());
        SqlDataReader dr = komut.ExecuteReader();
        if (dr.Read())
        {
            while (dr.Read())
            {
                Analysis s = new Analysis();
                s.UnitName = Convert.ToString(dr[0]);
                s.Correct = Convert.ToInt16(dr[1]);
                AnalysisCorrect.Add(s);
            }

            Datacon.baglanti().Close();
        }
        else
        {
            Datacon.baglanti().Close();
        }

回答1

if (dr.Read()) 行是问题所在。调用“Read()”前进到下一条记录。

您可以简化这一点,只需删除 if 语句并离开 while 循环。