SQLite und delete-Befehl
bool ret = false;
try
{
SQLiteConnection sqlConn = new SQLiteConnection("Data Source=" + m_dbName);
sqlConn.Open();
SQLiteCommand sqlComm = sqlConn.CreateCommand();
sqlComm.CommandText = "DELETE FROM " + szTablename+" WHERE name="+name+"";
SQLiteDataAdapter sqlAdapter = new SQLiteDataAdapter(sqlComm);
if (null == sqlAdapter)
{
ret = false;
}
else
{
ret = true;
}
sqlConn.Close();
return ret;
}
catch (SQLiteException sqlEx)
{
Console.WriteLine(sqlEx.Message);
return false ;
}
Ich habe den code zum löschen einer Zeile in eine sqlite-Datenbank, aber nichts ist geschehen, nachdem ich klicken Sie auf die Schaltfläche "löschen".
- en.wikipedia.org/wiki/SQL_injection
- speziell vorsichtig sein, Einspritzung, wo der Benutzer die Eingabe der Formatierung in der Abfrage. Für SqlLite, Blick in ? params für den Namen.
- Ich würde auch vorschlagen, verwenden Sie bind-Variablen an Stelle von string-Verkettung! Sieht wesentlich sauberer und verhindert SQL-injection. Bitte Bedenken Sie jemals verwenden Sie bind-Variablen...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Statt mit einem
DataAdapter
könnten Sie führen Sie einfach den Befehl direkt:Sollte man nicht schlucken keine Ausnahmen, die geworfen von der
ExecuteNonQuery
Methode, es sei denn, man kann vernünftig mit Ihnen umgehen. Sollten Sie verwenden parametrierte Abfragen statt manuell erstellen Abfragen, indem Sie die Verkettung von strings. Sie sollten auch sicherstellen, dass Sie die Verbindung schließen, nachdem Sie beendet haben, verwenden Sie es wie gezeigt.DataSet
müssen Sie löschen aus.Versuchen mit einfachen Anführungszeichen: