2
        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 ;
        }

sqliteデータベースの行を削除するコードがありますが、削除ボタンをクリックしても何も実行されません。

4

4 に答える 4

3

を使用する代わりにDataAdapter、コマンドを直接実行することもできます。

using(SQLiteConnection sqlConn = new SQLiteConnection("Data Source=" + m_dbName))
{
    sqlConn.Open();
    //create command

    sqlCommand.ExecuteNonQuery();
}

ExecuteNonQuery賢明に処理できない限り、メソッドからスローされた例外を飲み込まないでください。文字列を連結してクエリを手動で作成するのではなく、パラメータ化されたクエリを使用する必要があります。また、図のように使用を終了した後は、必ず接続を閉じる必要があります。

于 2012-07-07T12:00:30.877 に答える
0

一重引用符で試してください:

sqlComm.CommandText = "DELETE FROM " + szTablename+" WHERE name='"+name+"'";
于 2012-07-07T11:56:12.767 に答える