C#将SqlDataReader列值与0进行比较
我有一段代码:C#将SqlDataReader列值与0进行比较,c#,sql-server,sqldatareader,C#,Sql Server,Sqldatareader,我有一段代码: // Do comparisons for highlighting if (cellNum == reader.GetOrdinal("MTD Carryover")) { tempCell.Width = 155; if (reader.GetInt32(reader.GetOrdinal("MTD Carryover")) < 0) { tempCell.Attributes.Add("class", tempCell.Attribu
// Do comparisons for highlighting
if (cellNum == reader.GetOrdinal("MTD Carryover"))
{
tempCell.Width = 155;
if (reader.GetInt32(reader.GetOrdinal("MTD Carryover")) < 0)
{
tempCell.Attributes.Add("class", tempCell.Attributes["class"] + " " + "RedBackground");
}
else
{
tempCell.Attributes.Add("class", tempCell.Attributes["class"] + " " + "GreenBackground");
}
// Test for yellow last, MTD Carrover - 10% but still less than 0
if (reader.GetInt32(reader.GetOrdinal("MTD Carryover")) > (reader.GetInt32(reader.GetOrdinal("MTD
Carryover")) - (reader.GetInt32(reader.GetOrdinal("MTD Carryover")) * .1))
&& (reader.GetInt32(reader.GetOrdinal("MTD Carryover")) > 0))
{
tempCell.Attributes.Add("class", tempCell.Attributes["class"] + " " + "YellowBackground");
}
}
我是C#的新手,在我的第一个完整网站上广泛使用StackOverflow。不过,我似乎找不到这个问题的答案。非常感谢您的帮助。通过进一步检查,我实际上在SQL中的MTD结转字段中有空值,我没有意识到这一点。哪一行引发了异常?你在某处调用
reader.Read()
吗?是的,我在调用此代码之前调用reader.Read()。我从SqlDataReader获得的数据很好。引发异常的行是:if(reader.GetInt32(reader.GetOrdinal(“MTD结转”))<0),特别是0。SqlDataReader似乎认为我正在尝试访问Sql值
// Used in the SqlDataReader compare below for column highlighting
Int32 compareMTDCarryover = 0;