Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/220.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 语法错误(代码1):,编译时:插入rest_表(0,TABLENUMBER)值(?,)_Java_Android_Sqlite - Fatal编程技术网

Java 语法错误(代码1):,编译时:插入rest_表(0,TABLENUMBER)值(?,)

Java 语法错误(代码1):,编译时:插入rest_表(0,TABLENUMBER)值(?,),java,android,sqlite,Java,Android,Sqlite,我试图在Android studio中使用sqlite创建一个表,但是当我单击向表中添加数据的按钮时,我得到了这个错误 07-22 14:19:01.836 23818-23818/com.example.user.restapp E/SQLiteLog: (1) no such table: rest_tables 07-22 14:19:01.851 23818-23818/com.example.user.restapp E/SQLiteDatabase: Error inserting

我试图在Android studio中使用sqlite创建一个表,但是当我单击向表中添加数据的按钮时,我得到了这个错误

07-22 14:19:01.836 23818-23818/com.example.user.restapp E/SQLiteLog: (1) no such table: rest_tables
07-22 14:19:01.851 23818-23818/com.example.user.restapp E/SQLiteDatabase: Error inserting Tablenumber=2 Taken=0
07-22 11:12:20.576 21924-21924/com.example.user.restapp E/SQLiteLog: (1) near "0": syntax error
07-22 11:12:20.596 21924-21924/com.example.user.restapp E/SQLiteDatabase: Error inserting 0=0 TABLENUMBER=1
    android.database.sqlite.SQLiteException: near "0": syntax error (code 1): , while compiling: INSERT INTO rest_tables(0,TABLENUMBER) VALUES (?,?)
        at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
        at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:1093)
        at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:670)
        at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
        at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:59)
        at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31)
        at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1590)
        at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1462)
        at com.example.user.restapp.DatabaseHelper.InsertData(DatabaseHelper.java:39)
在MainActivity类中按钮的OnClickListener中,我写道:

boolean isInserted = myDB.InsertData("2","0");
                if(isInserted == true)
                    Toast.makeText(getApplicationContext(), "Table Added successfully", Toast.LENGTH_LONG).show();
                else
                    Toast.makeText(getApplicationContext(), "Table Not Added", Toast.LENGTH_LONG).show();
有人能告诉我到底是什么导致了这个错误吗?

试试这个:

public  SQLiteDatabase db;
private final Context context;
private DataBaseHelper dbHelper;

public  DataBaseAdapter(Context _context) 
{
    context = _context;
    dbHelper = new DataBaseHelper(context, DATABASE_NAME, null, DATABASE_VERSION);

}
public  DataBaseAdapter open() throws SQLException 
{
    db = dbHelper.getWritableDatabase();
    return this;
}
public void close() 
{
    db.close();
}

public  SQLiteDatabase getDatabaseInstance()
{
    return db;
}

public boolean InsertData(String tablenumber,String taken)
    {

        ContentValues contentValues = new ContentValues();
        contentValues.put("TABLENUMBER",tablenumber);
        contentValues.put("TAKEN",taken);
         db.insert(TABLE_NAME,null,contentValues);
在你的主要活动中:

//if statement
    DataBaseAdapter.InsertData(f2","0");
                        Toast.makeText(activity.this, "Data save successfully !", Toast.LENGTH_LONG).show();

                }


            }else {
                Toast.makeText(activity.this, "Never insert!", Toast.LENGTH_LONG).show();
            }

0不是有效的列名,这是语法错误的直接原因


将采用与您的架构相对应的列名,而不是0。

我更改了代码,但仍然收到相同的错误。logcat指出错误出现在这两行代码中:long result=db.insertTABLE_NAME,null,contentValues;布尔值isInserted=myDB.InsertData2,0;我还注意到logcat在说:没有这样的table@Hussein这是因为您的isInserted是一个布尔值,它只接受正确或错误的答案。因此,我建议您将其更改为字符串或整数,并使用if语句说明数据是否成功插入,然后isinserted=true@Hussein检查答案,可能会有帮助
//if statement
    DataBaseAdapter.InsertData(f2","0");
                        Toast.makeText(activity.this, "Data save successfully !", Toast.LENGTH_LONG).show();

                }


            }else {
                Toast.makeText(activity.this, "Never insert!", Toast.LENGTH_LONG).show();
            }
public static final String TAKEN = "0";
contentValues.put(TAKEN,taken);