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您可以直接执行命令,而不是使用 a :

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 回答
0

您是否尝试过 在查询中使用like而不是:=

sqlComm.CommandText = "DELETE FROM " + szTablename+" WHERE name="+name+""

像这样:

sqlComm.CommandText = "DELETE FROM " + szTablename+" WHERE name like "+name+""
于 2019-08-05T23:03:34.630 回答
0
using (SQLiteCommand com = new SQLiteCommand(con))
                {
                    com.CommandText = "DELETE FROM " + szTablename + " WHERE name='" + name + "';";
                    com.ExecuteNonQuery();
                    com.Dispose();
                }
于 2020-02-07T15:23:44.127 回答