我想获取Status
像冒犯的所有行。但是每次我执行以下代码时,所有条目都会从数据库中返回未过滤。
dgv_protokoll
是DataGridView
的一个实例。
SQLiteConnection sqlconnection = new SQLiteConnection("Data Source=" + datenbankpfad());
sqlconnection.Open();
SQLiteCommand sqlcmd = new SQLiteCommand("SELECT * FROM Telefonprotokoll WHERE Status LIKE @wert", sqlconnection);
sqlcmd.Parameters.Add(new SQLiteParameter("@wert", "offen%"));
SQLiteDataReader sqlreader = sqlcmd.ExecuteReader();
if (sqlreader.HasRows)
while (sqlreader.Read())
{
int dbwert_id = sqlreader.GetInt32(0);
string dbwert_zeit = sqlreader.GetString(sqlreader.GetOrdinal("Zeit"));
string dbwert_eingangAusgang = sqlreader.GetString(sqlreader.GetOrdinal("EingangAusgang"));
string dbwert_liegenschaft = sqlreader.GetString(sqlreader.GetOrdinal("Liegenschaft"));
string dbwert_name = sqlreader.GetString(sqlreader.GetOrdinal("Name"));
string dbwert_mieterVermieter = sqlreader.GetString(sqlreader.GetOrdinal("MieterVermieter"));
string dbwert_telefon = sqlreader.GetString(sqlreader.GetOrdinal("Telefon"));
string dbwert_grund = sqlreader.GetString(sqlreader.GetOrdinal("Grund"));
string dbwert_maßnahme = sqlreader.GetString(sqlreader.GetOrdinal("Maßnahme"));
string dbwert_wiedervorlage = sqlreader.GetString(sqlreader.GetOrdinal("wiedervorlage"));
string dbwert_bearbeiter = sqlreader.GetString(sqlreader.GetOrdinal("Bearbeiter"));
string dbwert_status = sqlreader.GetString(sqlreader.GetOrdinal("Status"));
dgv_protokoll.Rows.Add(dbwert_id, dbwert_zeit, dbwert_eingangAusgang, dbwert_liegenschaft, dbwert_name, dbwert_mieterVermieter, dbwert_telefon, dbwert_grund, dbwert_maßnahme, dbwert_wiedervorlage, dbwert_bearbeiter, dbwert_status);
int dgv_protokollRows = dgv_protokoll.Rows.Count;
lb_anzahlEintraege.Text = "Anzahl der Einträge: " + dgv_protokollRows;
}
sqlconnection.Close();
sqlcmd.Dispose();
sqlconnection.Dispose();
GC.Collect();
我假设状态是一个字符串。
但将 SQlLiteCommand 更改为:
SQLiteCommand sqlcmd = new SQLiteCommand("SELECT * FROM Telefonprotokoll WHERE Status LIKE '@wert'", sqlconnection);