我只是想通过按用户名搜索来获取数据库条目的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上的查询抛出积极结果
答案 0 :(得分:2)
您使用了错误的方法来检索数据。这行是错误的:
int rows = sqlCom.ExecuteNonQuery();
ExecuteNonQuery
仅返回一个值,该值指示查询是否运行正常。由于您只期望得到一个结果,因此可以使用ExecuteScalar
。试试这个:
int rows = Convert.ToInt32(sqlCom.ExecuteScalar());