喜欢和读者参数

问题描述 投票:0回答:1

我想获得所有Status就像是offen的行。但每次执行以下代码时,所有条目都将从数据库中未经过滤返回。

dgv_protokollDataGridView的一个例子。

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();
c# sqlite parameters reader
1个回答
0
投票

我假设Status是一个字符串。

但是将SQlLiteCommand更改为:

SQLiteCommand sqlcmd = new SQLiteCommand("SELECT * FROM Telefonprotokoll WHERE Status LIKE '@wert'", sqlconnection);
© www.soinside.com 2019 - 2024. All rights reserved.