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数据库中的一行,但是在单击“删除”按钮后没有任何操作。
答案 0 :(得分:2)
您可以直接执行命令,而不是使用DataAdapter
:
using(SQLiteConnection sqlConn = new SQLiteConnection("Data Source=" + m_dbName))
{
sqlConn.Open();
//create command
sqlCommand.ExecuteNonQuery();
}
您不应该吞下从ExecuteNonQuery
方法抛出的任何异常,除非您能够明智地处理它们。您应该使用参数化查询,而不是通过连接字符串手动创建查询。您还应确保在完成使用后关闭连接,如图所示。
答案 1 :(得分:0)
尝试使用单引号:
sqlComm.CommandText = "DELETE FROM " + szTablename+" WHERE name='"+name+"'";
答案 2 :(得分:0)
您是否尝试过使用like
而不是=
在查询中:
sqlComm.CommandText = "DELETE FROM " + szTablename+" WHERE name="+name+""
是这样的:
sqlComm.CommandText = "DELETE FROM " + szTablename+" WHERE name like "+name+""
答案 3 :(得分:0)
using (SQLiteCommand com = new SQLiteCommand(con))
{
com.CommandText = "DELETE FROM " + szTablename + " WHERE name='" + name + "';";
com.ExecuteNonQuery();
com.Dispose();
}