SQLite Query with String-Parameter всегда терпит неудачу - PullRequest
0 голосов
/ 24 января 2019

Я просто хочу получить идентификатор записи в БД, выполнив поиск по имени пользователя

protected void cmdSearch_Click(object sender, EventArgs e)
{
    string connStr = @"Data Source=D:\DB-Files\sqlite.db; Version=3;";
    SQLiteConnection sqlCon = new SQLiteConnection(connStr);
    SQLiteCommand sqlCom = new SQLiteCommand("SELECT ID FROM TableTest WHERE UserName = @UserName", sqlCon);
    sqlCom.Parameters.AddWithValue("@Username", txtUsername.Text);

    sqlCon.Open();
    int rows = sqlCom.ExecuteNonQuery();
    sqlCon.Close();

    lblUserFound.Text = rows.ToString();
}

, что бы я ни пытался, всегда происходит сбой;использование Visual Studio C # и SQLite версии 3;запрос на DB-Manager для SQLite выдает положительный результат

1 Ответ

0 голосов
/ 25 января 2019

Вы используете неправильный метод для получения данных.Эта строка неверна:

int rows = sqlCom.ExecuteNonQuery();

ExecuteNonQuery возвращает только значение, показывающее, был ли запрос выполнен нормально или нет.Поскольку вы ожидаете только одного результата, вы можете использовать ExecuteScalar.Попробуйте это:

int rows = Convert.ToInt32(sqlCom.ExecuteScalar());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...