Sajid H. A. Rashid Ответов: 1

Как позвонить месяц и день из нварчара(64), VB.NET


Дорогие братья и сестры,
Пожалуйста помогите мне достичь этой цели я хочу создать колонку с Днем рождения на нашем веб портале с помощью is done in Vb.net.
Значение даты рождения сохранено в nvarchar(64) (dd/MM/yyyy) я хочу привязать свой Datalist к текущему дню и месяцу. ниже приведен мой код. Пожалуйста, помогите мне и заранее спасибо.

Что я уже пробовал:

Dim sConnStrEMPBIRTH As String = ConfigurationManager.ConnectionStrings("SecurePerfectHistoryConnectionString").ConnectionString

Dim conEMPBIRTH As New SqlConnection(sConnStrEMPBIRTH)
conEMPBIRTH.ConnectionString = "Data Source=DBserver;Initial Catalog=SecurePerfect;Persist Security Info=True;User ID=XXX;Password=XXX"


        Dim cmdEMPBIRTH As New SqlCommand("SELECT value1, value8 FROM [UserFieldTable] WHERE ([value8] = @value8)", conEMPBIRTH)
        cmdEMPBIRTH.Parameters.Add("@value8", SqlDbType.NVarChar).Value = Date.Today.Day And Date.Today.Month

        Dim drEMPBIRTH As SqlDataReader
        conEMPBIRTH.Open()
        drEMPBIRTH = cmdEMPBIRTH.ExecuteReader()
        While drEMPBIRTH.Read()
            fclblemp.Text = drEMPBIRTH(0).ToString()
            fclbldate.Text = drEMPBIRTH(1).ToString()
            
        End While
        conEMPBIRTH.Close()

1 Ответов

Рейтинг:
1

OriginalGriff

В принципе, нет.
Измените свою базу данных таким образом, чтобы вы хранили информацию на основе даты в полях DATE, DATETIME или DATETIME2 и всегда использовали NVARCHAR только для строковых данных.

Проблема заключается в том, что строковые данные не имеют определенного формата, и очень часто (и чрезвычайно трудно работать с ними) данные в этом поле не согласованы. Например, если строка "01/02/1982", это может быть европейская: 1 февраля 1982 года или американская: 2 января 1952 года - и вы не можете сказать, потому что, как только данные попадают в БД, вы теряете весь контекст о том, кто ее ввел и какой язык использовал пользователь. И если ваша система не проверяет записи пользователей, то это может быть "35 Mars 96" или "идите вперед и размножайтесь", и вы понятия не имеете, что он имел в виду.

Даже если все ваши данные верны сейчас, это не значит, что они будут верны в будущем: использование правильных типов данных гарантирует, что они всегда будут верны, потому что преобразование из записи пользователя выполняется на уровне презентации и может использовать информацию о локали для правильного преобразования.

Если вы должны использовать струны - а они будут доставлять вам головную боль каждый раз, когда вы попытаетесь их использовать - тогда посмотрите на ПОДСТРОКА[^] и ПРЕОБРАЗОВАТЬ[^] должностные обязанности. Но это будет некрасиво и подвержено ошибкам.