Справка по коду в VB.NET
У меня есть заявление в vb.net для управления подписчиками
У каждого подписчика есть срок действия подписки
как я могу при запуске приложения сделать проверку для всех подписчиков
и если вы найдете подписчика, чья подписка заканчивается сегодня, вы увидите
сообщение о том, что подписчики подписаны сегодня
Что я уже пробовал:
Dim readers As SqlDataReader con.Open() Dim query As String query = "Select * from table name where expdate='" & DateTime.Now & "'" command = New SqlCommand(query, con) readers = command.ExecuteReader Dim count As Integer count = 0 While readers.Read count = count + 1 End While con.Close() If count = 0 Then MsgBox("لا يوجد اشتركات منتهية") Else MsgBox("هناك اشتراكات تنتهي اليوم") End If
CHill60
Что плохого в том, что вы пробовали?
Ваш код уязвим для SQL-инъекций. Используйте параметры sql вместо конкатенации строк.
Почему бы не использовать COUNT ( * ) в вашем запросе вместо подсчета записей в цикле?
Lockwood
Это один из немногих примеров, когда это не будет проблемой - дата.Теперь это не предоставленная пользователем информация.
Правка: это прозвучало намного злее, чем я хотел.
Вы правы, параметры-это важные вещи для использования.
Richard Deeming
DateTime.Now
не. Но если пользователь имеет какое-либо влияние на текущие настройки культуры, строковое представление этого может быть.
Lockwood
Это справедливое замечание - я не думал о возможности использования культурных настроек в качестве вектора атаки.