Когда я выполняю следующий запрос в SSMS, я получаю ожидаемый результат, то есть '1'
SELECT TSID
FROM tblTimesheets
WHERE TSUser = 'PJW' AND TSDate = '2012-01-18';
Однако, когда SqlCommand создается кодом в моем приложении, происходит сбой ExecuteScalar (он просто вызывает выход метода без сообщения об ошибке).
public int GetID(string paramUser, DateTime paramDate)
{
string strSql = "SELECT TSID " +
"FROM tblTimesheets " +
"WHERE TSUser = @TSUser AND TSDate = @TSDate;";
string strConnection = BuildConnectionString();
SqlConnection linkToDB = new SqlConnection(strConnection);
linkToDB.Open();
SqlCommand sqlCom = new SqlCommand(strSql, linkToDB);
sqlCom.Parameters.Add("@TSUser", SqlDbType.Text);
sqlCom.Parameters.Add("@TSDate", SqlDbType.Date);
sqlCom.Parameters["@TSUser"].Value = paramUser;
sqlCom.Parameters["@TSDate"].Value = paramDate;
int intResult = (Int32)sqlCom.ExecuteScalar();
linkToDB.Close();
return intResult;
}
Я прошел по коду и могу подтвердить, что параметры PJW и 2012-01-18 соответствуют требованиям, но ExecuteScalar возвращает все данные, которые, как я знаю, должны быть там, на основе моего сопоставимого запроса в SSMS.
Пожалуйста, помогите.