Я просто выполняю домашнее задание, но оно не работает ... для нашего андроид-проекта .. вот картина ошибки Я пробовал искать в 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;
}
}
}
он говорит, что невозможно запустить приложение / приложение было остановлено




Вот что вы написали:
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. : Используйте библиотеку сохраняемости комнаты, если можете.
Кстати, спасибо.
Похоже, ваше приложение разбилось. Пожалуйста, опубликуйте трассировку сбоя