带字符串参数的SQLite查询始终失败

时间:2019-01-24 20:56:49

标签: c# asp.net visual-studio sqlite

我只是想通过按用户名搜索来获取数据库条目的ID

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 for SQLite上的查询抛出积极结果

1 个答案:

答案 0 :(得分:2)

您使用了错误的方法来检索数据。这行是错误的:

int rows = sqlCom.ExecuteNonQuery();

ExecuteNonQuery仅返回一个值,该值指示查询是否运行正常。由于您只期望得到一个结果,因此可以使用ExecuteScalar。试试这个:

int rows = Convert.ToInt32(sqlCom.ExecuteScalar());