0

Android 2.3.3

static String name = "Database";
static int version = 1;

SQLiteDatabase sqlDB;
Cursor c;


public Database(Context context) {
    super(context, name, null, version);
    // TODO Auto-generated constructor stub

    sqlDB = getWritableDatabase();

    }

    @Override
    public void onCreate(SQLiteDatabase sqlDB) {
        // TODO Auto-generated method stub


    sqlDB.execSQL("create table if not exists Operations(Command Text, Pos1 Text, " +
                "Pos2 Text, Pos3 Text, Pos4 Text, Pos5 Text, Pos6 Text, Pos7 Text, Pos8 Text, Pos9 Text, Pos10 Text)");


    }

public void insertData() {
        // TODO Auto-generated method stub

        String addQuery ="ADD, add, and, had, ad, anddd, anndd, null, null, null, null";

                sqlDB.execSQL("insert into Operations values("+ addQuery +")"); 
                     //Exception at the above line
}

合計11列あります。

データベースにNULLを挿入できますか?はいの場合、データベースにデータを挿入しようとしている方法に問題はありますか?

これが私が得ているエラーです:::

12-21 14:53:29.629: E/AndroidRuntime(11894): Caused by: android.database.sqlite.SQLiteException: near "ADD": syntax error: insert into Operations values(ADD, add, and, had, ad, anddd, anndd, null, null, null, null)
12-21 14:53:29.629: E/AndroidRuntime(11894):    at android.database.sqlite.SQLiteDatabase.native_execSQL(Native Method)
12-21 14:53:29.629: E/AndroidRuntime(11894):    at android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1765)
12-21 14:53:29.629: E/AndroidRuntime(11894):    at com.x.x.Database.insertData(Database.java:71)
12-21 14:53:29.629: E/AndroidRuntime(11894):    at com.x.x.xxx.onCreate(xxx.java:109)
12-21 14:53:29.629: E/AndroidRuntime(11894):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
12-21 14:53:29.629: E/AndroidRuntime(11894):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615)
12-21 14:53:29.629: E/AndroidRuntime(11894):    ... 11 more

構文でこのエラーが発生する理由を誰かが教えてくれますか?

4

4 に答える 4

1

文字列を含める必要がある''ので、変更しますString addQuery ="ADD, add, and, had, ad, anddd, anndd, null, null, null, null";

に:

String addQuery ="'ADD', 'add', 'and', 'had', 'ad', 'anddd', 'anndd', null, null, null, null";
于 2012-12-21T09:38:25.537 に答える
0

SQL構文エラーinsert into test(aa,bb) values('ADD','BB') 。フィールド名はaa、文字列は「ADD」を使用してください。

于 2012-12-21T09:37:59.043 に答える
0

私によると、あなたは11の値で文字列(addQuery)を定義しましたが、それは1つとして数えています。ランタイムエラーが発生するのは問題があると確信しています。

于 2012-12-21T09:43:56.350 に答える
0
 //  Possible to Get Error 
    public void insertData() {
            // TODO Auto-generated method stub

            String addQuery ="ADD, add, and, had, ad, anddd, anndd, null, null, null, null";

                    sqlDB.execSQL("insert into Operations values("+ addQuery +")"); 
                         //Exception at the above line
    }

    use Like Below 

    public void insertData() {

    ContentValues cv=new ContentValues();
    cv.put("column1,value);
    cv.put("column2,value);
    cv.put("column3,value);
    cv.put("column4,value);
    cv.put("column5,value);
    cv.put("column7,value);
     database.insert(tabName, SINGLE_colName, cv);

    }
于 2012-12-21T09:59:27.967 に答える