Как выполнить поиск в дате SQL Server (дд-мм-гггг) с помощью DateTimePicker (мм-гггг)? - PullRequest
0 голосов
/ 06 апреля 2019

У меня есть база данных с датой (dd-MM-гггг) и Winforms с DateTimePicker (MM-гггг).

Когда я выбираю дату в DateTimePicker, как я могу искать в базе данных?

var sqlcomm = new SqlCommand($"SELECT SUM(sales) FROM table_name WHERE date = '{dateTimePicker1.Value.ToString("yyyy-mmm")}'", conn);

ОШИБКА:

Столкновение с типом операнда: дата несовместима с int

1 Ответ

1 голос
/ 06 апреля 2019

Используйте ПАРАМЕТРЫ - как вы всегда должны!Они предотвращают внедрение SQL, а также значительно упрощают указание различных данных в различных типах.

Примерно так:

string query = "SELECT SUM(sales) FROM table_name WHERE date = @someDate;";

SqlCommand sqlcomm = new SqlCommand(query, conn);
sqlcomm.Parameters.Add("@someDate", SqlDbType.Date).Value = dateTimePicker1.Value;

Хороший, чистый и безопасный код - не нужно путатьвокруг с форматами даты и преобразованием всего в строку, не нужно выяснять, сколько одинарных или двойных кавычек использовать - просто хороший, чистый, правильный код ADO.NET, каким он должен быть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...