问题描述
|
我的工作计划有问题。一切都成功构建,但是当我调试时,在totalUnits = Convert.ToDouble(values [1] .ToString());处出现索引超出范围异常。该程序应该计算公式并将该值返回到文本框。我很困惑。有人可以帮帮我吗?谢谢。
贾斯汀
这是我要看的一些代码:
private double GetRefurbRate()
{
string sql = \"\";
double Refurb_Rate = 0;
double totalRefurb = 0;
double totalUnits = 0;
string error_msg = \"\";
//Getting the value for sql for totalRefurb
sql = \"SELECT COUNT(distinct rp.repair_ord) \" +
\"FROM \" + schema + \".repair_part rp \" +
\"WHERE rp.repair_type = \'REFURB\' and rp.created_date > \'\" + DateTime.Now.ToString(\"d-MMM-yyyy\") + \"\' \";
while (true)
{
if (!myDb.RunSql(sql,true))
{
error_msg = \"DBError for getting Refurb Rate\";
break;
}
if (myDb.dbRdr.HasRows)
{
if (myDb.dbRdr.Read())
{
object[] values = new object[myDb.dbRdr.FieldCount];
myDb.dbRdr.GetValues(values);
Console.WriteLine(values[0].ToString());
totalRefurb = Convert.ToDouble(values[0].ToString());
//Getting the value from sql for totalUnits
sql = \"SELECT count(distinct rp.repair_ord) \" +
\"FROM \" + schema + \".repair_part rp \" +
\"WHERE rp.repair_type = \'REFURB\' and rp.ref_desig is null and rp.created_date > \'\" + DateTime.Now.ToString(\"d-MMM-yyyy\") + \"\' \";
while (true)
{
if (!myDb.RunSql(sql,true))
{
error_msg = \"DBError for getting Refurb Rate\";
break;
}
if (myDb.dbRdr.HasRows)
{
if (myDb.dbRdr.Read())
{
values = new object[myDb.dbRdr.FieldCount];
myDb.dbRdr.GetValues(values);
Console.WriteLine(values[1].ToString());
totalUnits = Convert.ToDouble(values[1].ToString());
try
{
//Formula for Refurb Rate
Refurb_Rate = totalRefurb / totalUnits * 100;
break;
}
catch (Exception e)
{
Console.WriteLine(e);
}
myDb.dbRdr.Close();
if (error_msg != String.Empty)
{
MessageBox.Show(error_msg,\"Get Refurb Rate\",MessageBoxButtons.OK,MessageBoxIcon.Asterisk);
}
break;
}
}
}
}
}
}
return Refurb_Rate;
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)