在android studio中插入时出错 [英] Error inserting in android studio

查看:71
本文介绍了在android studio中插入时出错的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

请大家帮忙。我无法将数据插入数据库这里是我的logcat:

Please guys need help. I can't insert data into database here is my logcat:

03-04 13:40:03.727 25642-25687/com.a00003454.tyreshopapp E/Surface: getSlotFromBufferLocked: unknown buffer: 0xab12ca40
03-04 13:40:11.269 25642-25642/com.a00003454.tyreshopapp E/SQLiteLog: (1) near "table": syntax error
03-04 13:40:11.270 25642-25642/com.a00003454.tyreshopapp E/SQLiteDatabase: Error inserting Size=dvdvdvdvdv Cost=dvdv TyreBrand=dvdvdv
android.database.sqlite.SQLiteException: near "table": syntax error (code 1): , while compiling: INSERT INTO Tyre.table(Size,Cost,TyreBrand) VALUES (?,?,?)
   at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
   at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:887)
   at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:498)
   at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
   at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
   at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31)
   at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1469)
   at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1341)
   at com.a00003454.tyreshopapp.TyreDatabaseHelper.addTyre(TyreDatabaseHelper.java:43)
   at com.a00003454.tyreshopapp.AddTyreActivity.AddData(AddTyreActivity.java:56)
   at com.a00003454.tyreshopapp.AddTyreActivity$2.onClick(AddTyreActivity.java:45)
   at android.view.View.performClick(View.java:5198)
   at android.view.View$PerformClick.run(View.java:21147)
   at android.os.Handler.handleCallback(Handler.java:739)
   at android.os.Handler.dispatchMessage(Handler.java:95)
   at android.os.Looper.loop(Looper.java:148)
   at android.app.ActivityThread.main(ActivityThread.java:5417)
   at java.lang.reflect.Method.invoke(Native Method)
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
03-04 13:40:11.358 25642-25687/com

我的代码:

package com.a00003454.tyreshopapp;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

/**
 * Created by user on 04.03.2017.
 */
public class TyreDatabaseHelper extends SQLiteOpenHelper {
    public static final String DATABASE_NAME="Tyre.db";
    public static final String TABLE_NAME="Tyre.table";
    public static final String COL_1="ID";
    public static final String COL_2="TyreBrand";
    public static final String COL_3="Size";
    public static final String COL_4="Cost";

    public TyreDatabaseHelper(Context context) {
        super(context, DATABASE_NAME, null, 1);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        String sql = ("CREATE TABLE Tyre (ID INTEGER PRIMARY KEY AUTOINCREMENT, TyreBrand TEXT Size INTEGER Cost INTEGER )");

        db.execSQL(sql);

    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        db.execSQL(" DROP TABLE IF EXISTS Tyre");
        onCreate(db);
    }

    public boolean addTyre(String tyreBrand, String size, String cost ) {
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues contentValues = new ContentValues();
        contentValues.put(COL_2, tyreBrand);
        contentValues.put(COL_3, size);
        contentValues.put(COL_4, cost);
        long result = db.insert(TABLE_NAME, null, contentValues);

        if (result == -1) {
            return false;
        } else {
           return true;
        }
    }

    public Cursor select() {
        SQLiteDatabase db =this.getWritableDatabase();
        Cursor data = db.rawQuery("SELECT * FROM Tyre",null);
        return data;

    }
}





我的尝试:



我觉得我在使用sql语句时遇到了麻烦,并尝试多次更改但没有结果



What I have tried:

I think I have troubles with sql statements and tried to change then numerous times but no result

推荐答案

2.onClick(AddTyreActivity.java:45)
在android.view.View.performClick(View.java:5198)
在android.view.View
2.onClick(AddTyreActivity.java:45) at android.view.View.performClick(View.java:5198) at android.view.View


PerformClick.run(View.java:21147)
在android.os.Handler.handleCallback(Handler.java:739)
在android.os.Handler.dispatchMessage(Handler.java:95)
在android.os.Looper.loop(Looper.java:148)
在android.app.ActivityThread.main(ActivityThread.java:5417)
在java.lang.reflect.Method.invoke (原生方法)
at com.android.internal.os.ZygoteInit
PerformClick.run(View.java:21147) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5417) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit


MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal。 os.ZygoteInit.main(ZygoteInit.java:616)
03-04 13:40:11.358 25642-25687 / com
MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 03-04 13:40:11.358 25642-25687/com

我的代码:

package com.a00003454.tyreshopapp;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

/**
 * Created by user on 04.03.2017.
 */
public class TyreDatabaseHelper extends SQLiteOpenHelper {
    public static final String DATABASE_NAME="Tyre.db";
    public static final String TABLE_NAME="Tyre.table";
    public static final String COL_1="ID";
    public static final String COL_2="TyreBrand";
    public static final String COL_3="Size";
    public static final String COL_4="Cost";

    public TyreDatabaseHelper(Context context) {
        super(context, DATABASE_NAME, null, 1);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        String sql = ("CREATE TABLE Tyre (ID INTEGER PRIMARY KEY AUTOINCREMENT, TyreBrand TEXT Size INTEGER Cost INTEGER )");

        db.execSQL(sql);

    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        db.execSQL(" DROP TABLE IF EXISTS Tyre");
        onCreate(db);
    }

    public boolean addTyre(String tyreBrand, String size, String cost ) {
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues contentValues = new ContentValues();
        contentValues.put(COL_2, tyreBrand);
        contentValues.put(COL_3, size);
        contentValues.put(COL_4, cost);
        long result = db.insert(TABLE_NAME, null, contentValues);

        if (result == -1) {
            return false;
        } else {
           return true;
        }
    }

    public Cursor select() {
        SQLiteDatabase db =this.getWritableDatabase();
        Cursor data = db.rawQuery("SELECT * FROM Tyre",null);
        return data;

    }
}





我的尝试:



我觉得我在使用sql语句时遇到了麻烦,并试图多次改变但没有结果



What I have tried:

I think I have troubles with sql statements and tried to change then numerous times but no result


这篇关于在android studio中插入时出错的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆