Sql insert database android studio не может успешно работать

Я просто выполняю домашнее задание, но оно не работает ... для нашего андроид-проекта .. вот картина ошибки Я пробовал искать в YouTube, как сделать вставку sql. это не работает. именно так

моя активность

импортировать android. os.Bundle импортировать android. служба поддержки. v7. приложение. AppCompatActivity импортировать android. Посмотреть. Вид импортировать android. виджет. Кнопка импортировать android. виджет. Редактировать текст импортировать android. виджет. Тост

public class MyActivity extends AppCompatActivity {
DataBaseHelper myDb;
EditText getname, getusername,getpassword;
Button signin;
String name,username, password;
Boolean result;
public final static String EXTRA_MESSAGE = "com.example.studentpc.MESSAGE";
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_my);
      signin = (Button) findViewById(R.id.signinbtn);
    signin.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Clickme();
        }
    });

}
private void Clickme(){
    myDb = new DataBaseHelper(this);
    getname = (EditText)findViewById(R.id.editname);
    getusername = (EditText)findViewById(R.id.editusername);
    getpassword = (EditText)findViewById(R.id.editpassword);

    name = getname.getText().toString();
    username = getusername.getText().toString();
    password = getpassword.getText().toString();
    result= myDb.insertData(name,username,password);
    if (result.equals(true)){
        Toast.makeText(this,"Signin 
 Successfully",Toast.LENGTH_SHORT).show();
    }else {
        Toast.makeText(this,"Signin Failed",Toast.LENGTH_SHORT).show();
    }
}

}

база данных

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

public class DataBaseHelper extends SQLiteOpenHelper {
public static final String DATABASE_NAME = "Student.db";
public static final String TABLE_NAME = "Student_table";
long result;
public static final String COL_1 = "ID";
public static final String COL_2 = "NAME";
public static final String COL_3 = "USERNAME";
public static final String COL_4 = "PASSWORD";
public DataBaseHelper(Context context){
    super(context, DATABASE_NAME, null, 1);

}
@Override
public void onCreate(SQLiteDatabase db){
    db.execSQL("CREATE TABLE IF NOT EXISTS" + TABLE_NAME + "(ID INTERGER 
KEY AUTOINCREMENT, NAME TEXT, USERNAME TEXT, PASSWORD PASSOWRD)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion){
    db.execSQL("DROP TABLE IF EXISTS "+ TABLE_NAME);
}
public boolean insertData(String name, String username, String password){
    SQLiteDatabase db = this.getWritableDatabase();
    ContentValues contentValues = new ContentValues();
    contentValues.put(COL_2,name);
    contentValues.put(COL_3,username);
    contentValues.put(COL_4,password);
    result=db.insert(TABLE_NAME, null, contentValues);
    db.close();
 if (result==-1){
return false;
}else {
return true;
}
}
}

он говорит, что невозможно запустить приложение / приложение было остановлено

Похоже, ваше приложение разбилось. Пожалуйста, опубликуйте трассировку сбоя

Andreas 17.01.2019 11:02
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
1
45
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вот что вы написали:

db.execSQL("CREATE TABLE IF NOT EXISTS" + TABLE_NAME + "(ID INTERGER 
KEY AUTOINCREMENT, NAME TEXT, USERNAME TEXT, PASSWORD PASSOWRD)");

Ошибок много. Я исправил некоторые, что мог заметить.

db.execSQL("CREATE TABLE IF NOT EXISTS " + TABLE_NAME + " (ID INTEGER 
KEY AUTOINCREMENT, NAME TEXT, USERNAME TEXT, PASSWORD PASSWORD)");

Кроме того, я не думаю, что PASSWORD - это тип данных. Для паролей обычно используется текстовый тип.

P.S. : Используйте библиотеку сохраняемости комнаты, если можете.

Кстати, спасибо.

oboamg lolZZ 22.01.2019 14:27

Другие вопросы по теме