указанный акт не является действительным VB.Net - PullRequest
0 голосов
/ 27 апреля 2020

У меня проблемы со следующей подпрограммой.

Его цель - найти значение (в данном случае дату) и сравнить его с todaysdate. если в дате DateAscending было найдено значение даты, то dateexists устанавливается в значение true.

При выполнении оператора if отображается ошибка «Указанное приведение недействительно».

Я использовал ту же самую процедуру прежде, чтобы найти имя пользователя, которое было строкой, todaysdate однако является date - так что я на 99% уверен, что проблема связана с типом данных, но я не знаю, как чтобы решить ее.

vairibale getconn содержит строку подключения.

tablename - строка с правильным именем таблицы.

        Dim todaysdate As Date = Today
        Dim dateexists As Boolean = False
        Using connection As New OleDbConnection(getconn)
            connection.Open()
            Dim sql = "SELECT DateAscending FROM " & tablename
            Dim finddate As New OleDbCommand(sql, connection)
            Dim reader As OleDbDataReader = finddate.ExecuteReader()
            While reader.Read()
                If todaysdate = CDate(reader.GetString(0)) Then 'Error occurs here
                    dateexists = True
                End If
            End While
            reader.Close()
            connection.Close()
      End Using

1 Ответ

1 голос
/ 27 апреля 2020

Как выглядят строковые представления ваших дат в столбце 0? Похоже, что строку нельзя преобразовать в дату.

Также эту задачу следует выполнить с помощью оператора SELECT COUNT (*), например:

Dim sql As String = "SELECT COUNT(*) FROM " & tablename
sql &= " WHERE DateAscending ='" & Strings.Format(todaysdate, "YourFormat") & "'"

Dim Cmd As New OleDbCommand(sql, connection)
dateexists = CInt(Cmd.ExecuteScalar()) > 0

Замените «YourFormat» на отформатируйте ваши даты отформатированы в этом столбце. Вы найдете несколько примеров для функции Формат здесь:

https://docs.microsoft.com/de-de/dotnet/api/microsoft.visualbasic.strings.format?view=netcore-3.1

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