として認識されませんでしたこんにちは、私は値を取得するためのメソッドを持つデータベースを形成し、チャートコントロールでこれらの値を表す。..書式の例外:文字列が有効なDateTimeの
と、これは方法です...
public static void Hourlyattendence(System.DateTime startdate, System.DateTime enddate, string StartHour, string EndHour,
out string[] Hours, out int[] Accepted, out int[] Refused)
{
int hours = 1 + int.Parse(EndHour) - int.Parse(StartHour);
Hours = new string[hours];
Accepted = new int[hours];
Refused = new int[hours];
int result = 0;
for (int i = 0; i < hours; i++)
{
Accepted[i] = 0;
Refused[i] = 0;
Hours[i] = string.Format("{0:00}", int.Parse(StartHour) + i);
}
const string sql = @"SELECT COUNT('x') AS numVisits, visit_Status as Status, SUBSTRING(visit_Time,1,2) as visitHour
FROM visits
WHERE visit_Date BETWEEN @startdate AND @enddate
AND SUBSTRING(visit_Time,1,2) between @StartHour and @EndHour
GROUP BY SUBSTRING(visit_Time,1,2), visit_Status";
var hourstable = new DataTable();
using (var conn = new MySql.Data.MySqlClient.MySqlConnection(connectionstring))
{
conn.Open();
var cmd = new MySql.Data.MySqlClient.MySqlCommand(sql, conn);
var ds = new DataSet();
var parameter = new MySql.Data.MySqlClient.MySqlParameter("@startdate", MySql.Data.MySqlClient.MySqlDbType.DateTime);
parameter.Direction = ParameterDirection.Input;
parameter.Value = startdate;
cmd.Parameters.Add(parameter);
var parameter2 = new MySql.Data.MySqlClient.MySqlParameter("@enddate", MySql.Data.MySqlClient.MySqlDbType.DateTime);
parameter2.Direction = ParameterDirection.Input;
parameter2.Value = enddate;
cmd.Parameters.Add(parameter2);
var parameter3 = new MySql.Data.MySqlClient.MySqlParameter("@StartHour", MySql.Data.MySqlClient.MySqlDbType.DateTime);
parameter3.Direction = ParameterDirection.Input;
parameter3.Value = StartHour;
cmd.Parameters.Add(parameter3);
var parameter4 = new MySql.Data.MySqlClient.MySqlParameter("@EndHour", MySql.Data.MySqlClient.MySqlDbType.DateTime);
parameter4.Direction = ParameterDirection.Input;
parameter4.Value = EndHour;
cmd.Parameters.Add(parameter4);
var da = new MySql.Data.MySqlClient.MySqlDataAdapter(cmd);
da.Fill(ds);
try
{
hourstable = ds.Tables[0];
}
catch
{
hourstable = null;
}
}
if (hourstable != null)
{
for (int i = 0; i < hourstable.Rows.Count; i++)
{
if (int.TryParse(hourstable.Rows[i]["numVisits"].ToString(), out result) && int.TryParse(hourstable.Rows[i]["visitHour"].ToString(), out hours))
{
hours -= int.Parse(StartHour);
if (hourstable.Rows[i]["Status"].ToString().ToUpper() == "ACCEPTED")
{
Accepted[hours] = result;
}
else
{
Refused[hours] = result;
}
}
}
}
}
と私は以下のコードでメソッドの上に呼び出しています...と私はチャートコントロールでデータを表現していますこれはどこです....
private void KpiHourlAttendenceForm_Load(object sender, EventArgs e)
{
Drawkpihourlyattendence(dtpStartDate.Value, dtpEnddate.Value);
}
public void Drawkpihourlyattendence(DateTime startdate, DateTime enddate)
{
try
{
KpiHourlyattaendencechart.Series.Clear();
Series acceptedSeries = KpiHourlyattaendencechart.Series.Add("Accepted");
Series rejectedSeries = KpiHourlyattaendencechart.Series.Add("Refused");
string[] xValues;
int[] yValues;
int[] yValues2;
KpiData.Hourlyattendence(startdate, enddate, "06", "22", out xValues, out yValues, out yValues2);
//blah
//blah
///blah
}
catch(FormatException e)
{
Console.WriteLine(e.Message);
}
は、例外が発生しました:F ormat例外文字列が有効なDateTimeとして認識されませんでした。
が.....この上の任意の1 PLSのに役立つだろう事前に
多くのおかげで...