Java 使用';在sqlite中

Java 使用';在sqlite中,java,android,sqlite,Java,Android,Sqlite,我对sqlite有问题。在我的应用程序中,我通过语音识别来编辑文本,然后将该字符串存储在sqlite中。 它的工作非常好,问题是当我试图说“不要”这样的词并试图将其保存到sqlite时,应用程序崩溃是因为它对sqlite的验证。 有解决办法吗 这是语音识别的on活动结果: protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(reques

我对sqlite有问题。在我的应用程序中,我通过语音识别来编辑文本,然后将该字符串存储在sqlite中。 它的工作非常好,问题是当我试图说“不要”这样的词并试图将其保存到sqlite时,应用程序崩溃是因为它对sqlite的验证。 有解决办法吗

这是语音识别的on活动结果:

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    switch (requestCode) {
    case REQ_CODE_TAG_INPUT: {
        if (resultCode == RESULT_OK && null != data) {
            ArrayList<String> result = data
                    .getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
            if (!result.get(0).equals("delete all")) {
                et1.setText(et1.getText().toString() + " " + result.get(0));
            } else {
                et1.setText("");
            }
        }
        break;
    }
这是一个例外:

原因:android.database.sqlite.SQLiteException:near“t”:编译时语法错误(代码1):插入注释值('No Tag'、'don't'、'28/11/2014'、-133663026


谢谢您的帮助!!

您只需将翻一番即可
例如:
不要

类似于:
des=des.replace(“”,“”);

或者,更好的是,您可以在SQL命令中使用绑定参数。
像这样:

绑定参数阻止您的代码进行SQL注入,并为您执行自动类型转换。

不仅如此:绑定参数还将阻止所有这些字符串连接,这是一个性能吸盘。

[此处回答][1]一直以来都是绑定参数。而且这么多的字符串连接对性能影响很大。是的。字符串连接是一个蜗牛。编辑我的答案来添加你的观察结果。哦,你用绑定参数的想法救了我!!谢谢很多人!!(替换对我不起作用)因此,您可以接受我的回答,以便将您的问题从未回答问题队列中删除。无论如何,很高兴我能帮助您。
if (!et1.getText().toString().equals("")
            && !et2.getText().toString().equals("")) {
        tag = et1.getText().toString();
        des = et2.getText().toString();
        Notes.getInstance().getmNotes()
                .add(new MyNote(tag, des, date, 1, id));
        MyOH oh = new MyOH(getApplicationContext());
        mDb = oh.getWritableDatabase();
        if (MainActivity.state == 1) {
            mDb.execSQL("UPDATE note SET tag='" + tag + "',des='" + des
                    + "',time='" + date + "',noteid=" + id
                    + " WHERE noteid = " + id);
        } else {
            mDb.execSQL("INSERT INTO note VALUES ('" + tag + "','" + des
                    + "','" + date + "'," + id + ")");
        }
if (MainActivity.state == 1)
{
    mDb.execSQL("UPDATE note SET tag = ?, des = ?, time = ?, noteid = ? WHERE noteid = ?", new String[]{tag, des, date, id, id});
}
else
{
    mDb.execSQL("INSERT INTO note (tag, des, time, noteid) VALUES (?, ?, ?, ?)", new String[]{tag, des, date, id});
}