Tôi gặp lỗi "Không thể chuyển đổi loại int 'int?' để 'int'. Một chuyển đổi rõ ràng tồn tại (bạn đang thiếu một diễn viên?) "trên OrdersPerHour của tôi tại dòng trở lại. Tôi không chắc tại sao vì kỹ năng C# của tôi không phải là nâng cao. Bất kỳ trợ giúp sẽ được đánh giá cao.Không thể chuyển đổi hoàn toàn loại 'int?' để 'int'.
static int OrdersPerHour(string User)
{
int? OrdersPerHour;
OleDbConnection conn = new OleDbConnection(strAccessConn);
DateTime curTime = DateTime.Now;
try
{
string query = "SELECT COUNT(ControlNumber) FROM Log WHERE DateChanged > #" + curTime.AddHours(-1) + "# AND User = '" + User + "' AND Log.EndStatus in ('Needs Review', 'Check Search', 'Vision Delivery', 'CA Review', '1TSI To Be Delivered');";
OleDbCommand dbcommand = new OleDbCommand(query, conn);
dbcommand.Connection.Open();
dbcommand.CommandType = CommandType.Text;
OrdersPerHour = (int?)dbcommand.ExecuteScalar();
Console.WriteLine("Orders per hour for " + User + " is " + OrdersPerHour);
}
catch (OleDbException ex)
{
}
finally
{
conn.Close();
}
return OrdersPerHour;
}
Tôi hiểu sai lầm của tôi về phần này ngay bây giờ. Nhưng sau khi thực hiện những thay đổi đó, tôi nhận được "Người dùng của biến cục bộ chưa được gán" OrdersPerHour 'tại dòng trả về. – MaylorTaylor
@MaylorTaylor Thay đổi 'int? OrdersPerHour;' to 'int OrdersPerHour = 0;', nên cẩn thận. –
OK mà cố định tôi ngay lập tức, tuy nhiên, bây giờ tôi đang nhận được một vấn đề khác http://stackoverflow.com/questions/16744510/executescalar-always-returns-0 – MaylorTaylor