我将我从 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
循环。