Я пытаюсь проверить переданную переменную, чтобы убедиться, что это действительно тип Int. Однако у меня появляется ошибка, которая говорит мне, что переменная «год» не может быть преобразована из int в строку. Я застрял, потому что я не пытаюсь преобразовать его, поэтому я смущен тем, что мне не хватает.Попытка проверить, действительно ли значение int действительно int
[HttpGet("[action]")]
[Authorize]
public ListResult ProblemsYTD(int year = "")
{
var sql = "SELECT DatePart(yyyy, CLL.Call_Log_Date) as [ProblemsYear], CLL.Service as [Service], Sum((DATEDIFF(dd, CLL.Call_Log_Date, GetDate()))) as [DaysOpen] " +
"FROM VMWareSM_Test.dbo.RV_CALL as CLL " +
"Where CLL.IPK_Stream_Ref = '19' And DatePart(yyyy, CLL.Call_Log_Date)";
int myInt;
if (!int.TryParse(year, out myInt))
{
year = "%" + year + "%";
sql += " = @year";
}
sql += " Group by CLL.Service, DatePart(yyyy, CLL.Call_Log_Date) "+
"Order by CLL.Service DESC; ";
SqlParameter[] sqlParams =
{
new SqlParameter
{
ParameterName = "@year",
Value = year,
DbType = DbType.Int32,
Direction = ParameterDirection.Input
}
};
Вы не можете установить int в пустую строку. – dburgener
'public ListResult ProblemsYTD (int year =" ")' просто объявить его как int и year удалить значение по умолчанию .. Я бы предложил обновить основы C# и типы – MethodMan
Ошибка, так как вы объявляете формальный параметр (год) как int, но присваивая ему значение, которое является строкой, которая вызовет ошибку. – user3210251