читать данные файла android studio - PullRequest
0 голосов
/ 23 ноября 2018

Я пытаюсь прочитать файл сценария, я поместил имя файла, которое называется «test.sql».Но я получил ошибку при запуске кода.

Вот ошибка

E/AndroidRuntime: FATAL EXCEPTION: main
                  Process: com.example.waiku.work2, PID: 3990
                  android.database.sqlite.SQLiteException: near "Pertama": syntax error (code 1): , while compiling: INSERT INTO `Table1` (name,address,phone,id) VALUES (WK,Taman Pertama,NULL,'4');
                  #################################################################
                  Error Code : 1 (SQLITE_ERROR)
                  Caused By : SQL(query) error or missing database.
                    (near "Pertama": syntax error (code 1): , while compiling: INSERT INTO `Table1` (name,address,phone,id) VALUES (WK,Taman Pertama,NULL,'4');)
                  #################################################################
                      at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
at com.example.waiku.work2.MainActivity$3.onClick(MainActivity.java:100)

Это мой код, где строка ошибки 100 указывает на db.execSQL(line);.

 mBtnImport.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                SQLiteDatabase db = mSQLiteHelper.getWritableDatabase();

                try {
                    String filename = "test.sql";
                    File sdcard = Environment.getExternalStorageDirectory();
                    File file = new File(sdcard, filename);

                    BufferedReader br = new BufferedReader(new FileReader(file));
                    String line;
                    while ((line =  br.readLine()) != null) {
                        if (line.trim().length() > 0) {
                            db.execSQL(line);
                            db.close();
                        }
                    }

                    Toast.makeText(getApplicationContext(), "Upgrade complete.", Toast.LENGTH_SHORT).show();

                } catch (IOException e) {
                    Toast.makeText(getApplicationContext(), e.getMessage(), Toast.LENGTH_SHORT).show();
                }

                new upgradeDB().execute("", "", "");


            }
        });

Могу ли я узнать в чем ошибка?

1 Ответ

0 голосов
/ 23 ноября 2018

android.database.sqlite.SQLiteException: рядом с «Pertama»: синтаксическая ошибка (код 1): при компиляции: INSERT INTO Table1 (имя, адрес, телефон, id) ЗНАЧЕНИЯ (WK, Taman Pertama, NULL, '4');

Говорит, что у вас есть синтаксическая ошибка.Строки / текст должны быть заключены в одинарные кавычки.

Поэтому необходимо использовать что-то вроде

INSERT INTO Table1 (name,address,phone,id) VALUES ('WK','Taman Pertama',NULL,4);

т.е. WK и Taman Pertama должны быть заключены в кавычки, число которых не нужнобудет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...