PullConstants 클래스의 속성을 CreateForecast 클래스로 가져 오려고합니다. CreateForecast에서이 코드로 PullConstants의 인스턴스를 만들었습니다. 두 클래스가 동일한 네임 스페이스에 있음을 확인했습니다. 나는 아래의 코드로 CreateForecast하는 PullConstants에서 값을 끌어 할 때클래스에서 당기기 속성
PullConstants pc = new PullConstants();
하지만, 난 항상 값이 제대로 데이터베이스에서 뽑아 가져옵니다 0
double sla = pc.sla;
내가 확인한받을 수 있지만 그것의 범위는 클래스의 첫 번째 실행을 넘어서지 않는 것으로 보인다. 정확히 내가 PullConstants에서 올바른 속성 값을 가져올 수 없다는 점을 잘못하고 있습니까?
PullConstants 클래스는 다음과 같다 :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MySql.Data.MySqlClient;
namespace ForecastBuilder
{
class PullConstants
{
InitializeDB idb = new InitializeDB();
ErrorLogger el = new ErrorLogger();
public double sla { get; set; }
public int serviceTime { get; set; }
public int avgHandleTime { get; set; }
public int maxWait { get; set; }
public double shrinkageAdjustment { get; set; }
public double alpha { get; set; }
public double beta { get; set; }
public double specialDayPerInc { get; set; }
public void PullConstantValues()
{
idb.OpenDatabases();
try
{
string sqlConstants = "select * from forecastconstants";
MySqlCommand cmdConstants = new MySqlCommand(sqlConstants, idb.myconn);
MySqlDataReader rdrConstants = cmdConstants.ExecuteReader();
while (rdrConstants.Read())
{
sla = double.Parse(rdrConstants["SLA"].ToString());
serviceTime = int.Parse(rdrConstants["ServiceTime"].ToString());
avgHandleTime = int.Parse(rdrConstants["AvgHandleTime"].ToString());
maxWait = int.Parse(rdrConstants["MaxWait"].ToString());
shrinkageAdjustment = double.Parse(rdrConstants["ShrinkageAdjustment"].ToString());
alpha = double.Parse(rdrConstants["Alpha"].ToString());
beta = double.Parse(rdrConstants["Beta"].ToString());
specialDayPerInc = double.Parse(rdrConstants["SitCallIncrPer"].ToString());
}
}
catch (Exception e)
{
el.createError(2, e.ToString(), "Could not pull constants");
}
finally
{
idb.myconn.Close();
}
}
}
}
로 변경하여이 기능을 생성자을 고려할 수 있습니다 더블? 왜 단순히'sla = Convert.ToDouble (rdrConstants [ "SLA"])'를 호출하지 않는가? 그 *** *** *** 문제를 해결할 수 있습니다. –