Как назначить переменную для результата запроса - PullRequest
1 голос
/ 24 апреля 2011

Как мне присвоить результат запроса переменной.

Я использую SQLlite.Ниже приведен код для получения пароля из пользовательской таблицы.Мне нужно сравнить данный пароль и данный пароль.

    Dim i As String
    Dim p As String
    i = txtUserID.Text
    p = txtPassword.Text

    Try
        Dim sqlConnection As New SQLite.SQLiteConnection()
        Dim sqlCommand As New SQLiteCommand("", sqlConnection)
        Dim sqlPath As String = "Data Source=" & Application.StartupPath & "\Database\SimpleDB.db3"
        Dim sqlQuery As String = "SELECT Password FROM User WHERE UserID LIKE '" & i & "'"
        sqlConnection.ConnectionString = sqlPath
        sqlConnection.Open()
        sqlCommand.CommandText = sqlQuery
        sqlCommand.ExecuteNonQuery()
        sqlConnection.Close()
    Catch ex As Exception
        MsgBox("Invalid ID or Password. Please try again.")
    End Try

Изменить 1 :

В этом коде ниже, зачем мнеиспользовать GetInt16 (0).Почему 16 и почему 0 в параметре.В чем разница между GetInt32 (), GetInt16 () и GetString ()

DbDataReader reader = command.ExecuteReader();

while (reader.Read())
{
    int id=  reader.GetInt16(0);
}
reader.Close();

1 Ответ

2 голосов
/ 24 апреля 2011

Прежде всего, вы используете sqlCommand.ExecuteNonQuery() - это будет только возвращать количество затронутых строк.

Используйте другой метод - что-то, что вернет результаты, например:

sqlCommand.ExecuteReader()

Вам необходимо присвоить возвращаемое значение этого переменной типа DbDataReader (или, скорее, SqlDataReader, которая наследуется от него).

Это даст вам SqlDataReader, который вы можете перебрать, чтобы получить значения.

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