я получаю ошибки в моей программе поддержки Android, я новичок в android
2-07 23: 41: 03.052 7613-7613/com.example.ks.doit E/SQLiteLog: (1) таблица table3 не имеет столбца с именем name 02-07 23: 41: 03.052 7613-7613/com.example.ks.doit E/SQLiteDatabase: Ошибка ввода имени = alinf password = asifjiejf username = aksdjfiej 02-07 23: 41: 03.052 7613-7613/com.example.ks.doit E/SQLiteDatabase: android.database.sqlite.SQLiteException: таблица table3 не имеет столбца с именем name (код 1): при компиляции: INSERT INTO table3 (имя, пароль, имя пользователя) VALUES (?,?,?) 02-07 23: 41: 03.052 7613-7613/com.example.ks. doit E/SQLiteDatabase: at android.database.sqlite.SQLiteConnection.nativePrepareStatement (собственный метод) 02-07 23: 41: 03.052 7613-7613/com.example.ks.doit E/SQLiteDatabase: at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:887) 02-07 23: 41: 03.052 7613-7613/com.example.ks.doit E/SQLiteDatabase: at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:498) 02 -07 23: 41: 03.052 7613-7613/com.example.ks.doit E/SQLiteDatabase: at andr oid.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588) 02-07 23: 41: 03.052 7613-7613/com.example.ks.doit E/SQLiteDatabase: at android.database.sqlite.SQLiteProgram. (SQLiteProgram.java: 58) 02-07 23: 41: 03.052 7613-7613/com.example.ks.doit E/SQLiteDatabase: at android.database.sqlite.SQLiteStatement. (SQLiteStatement.java:31) 02-07 23:41: 03.052 7613-7613/com.example.ks.doit E/SQLiteDatabase: at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1469) 02-07 23: 41: 03.052 7613-7613/com.example. ks.doit E/SQLiteDatabase: at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1341) 02-07 23: 41: 03.052 7613-7613/com.example.ks.doit E/SQLiteDatabase: at com. example.ks.doit.sqlite_database.insertData(sqlite_database.java:34) 02-07 23: 41: 03.052 7613-7613/com.example.ks.doit E/SQLiteDatabase: at com.example.ks.doit.Insertion $ 1.onClick(Insertion.java:54) 02-07 23: 41: 03.052 7613-7613/com.example.ks.doit E/SQLiteDatabase: at android.view.View.performCl ick (View.java:5198) 02-07 23: 41: 03.052 7613-7613/com.example.ks.doit E/SQLiteDatabase: at android.view.View $ PerformClick.run(View.java:21147) 02- 07 23: 41: 03.052 7613-7613/com.example.ks.doit E/SQLiteDatabase: at android.os.Handler.handleCallback(Handler.java:739) 02-07 23: 41: 03.052 7613-7613/com. example.ks.doit E/SQLiteDatabase: at android.os.Handler.dispatchMessage(Handler.java:95) 02-07 23: 41: 03.052 7613-7613/com.example.ks.doit E/SQLiteDatabase: at android. os.Looper.loop(Looper.java:148) 02-07 23: 41: 03.052 7613-7613/com.example.ks.doit E/SQLiteDatabase: at android.app.ActivityThread.main(ActivityThread.java:5417) 02-07 23: 41: 03.052 7613-7613/com.example.ks.doit E/SQLiteDatabase: at java.lang.reflect.Method.invoke (родной метод) 02-07 23: 41: 03.052 7613-7613/com.example.ks.doit E/SQLiteDatabase: at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:726) 02-07 23: 41: 03.052 7613-7613/com.example.ks.doit E/SQLiteDatabase: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 02-07 23: 41: 03.130 7613-7638/com.example.ks.doit W/EGL_emulation: eglSurfaceAttrib не реализовано 02-07 23: 41: 03.130 7613-7638/com.example.ks.doit W/OpenGLRenderer: Не удалось установить EGL_SWAP_BEHAVIOR на поверхность 0xabe82e60, error = EGL_SUCCESS 02-07 23: 41: 06.575 7613-7638/com.example.ks.doit E/Поверхность: getSlotFromBufferLocked: неизвестный буфер: 0xab84f230 02-07 23: 48: 30.318 7613-7619/com.example.ks.doit W/art: Приостановка всех потоков заняла: 9.032мс
//this is my Sqlite class code
public boolean insertData(String name, String userName, String password)
{
SQLiteDatabase mydatabase = helper.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(Helper.NAME,name);
contentValues.put(Helper.USERNAME,userName);
contentValues.put(Helper.PASSWORD, password);
long result = mydatabase.insert(Helper.TABLE_NAME,null,contentValues);
if (result <= 0)
{
return false;
}
else
{
return true;
}
}
class Helper extends SQLiteOpenHelper
{
//database information
private static final String DATABASE_NAME="mydatabase3";
private static final int DTABASE_VERSION=11;
//table information
private static final String TABLE_NAME="table3";
private static final String NAME="name";
private static final String USERNAME="username";
private static final String PASSWORD="password";
Context context;
public Helper(Context context) {
super(context,DATABASE_NAME, null, DTABASE_VERSION);
this.context = context;
}
@Override
public void onCreate(SQLiteDatabase db) {
String CREATE_TABLE=
"CREATE TABLE"+
" "+Helper.TABLE_NAME+" "+
"("
+Helper.NAME+"TEXT,"
+Helper.USERNAME+"TEXT,"
+Helper.PASSWORD+"TEXT);";
db.execSQL(CREATE_TABLE);
Toast.makeText(context, "database create", Toast.LENGTH_LONG).show();
}
Вам нужно добавить пробел перед типом данных столбца.
Попробуй это:
public void onCreate(SQLiteDatabase db) {
String CREATE_TABLE=
"CREATE TABLE"+
" "+Helper.TABLE_NAME+" "+
"("
+Helper.NAME+" "+"TEXT," //add space before column data type
+Helper.USERNAME+" "+"TEXT,"
+Helper.PASSWORD+" "+"TEXT);";
db.execSQL(CREATE_TABLE);
Toast.makeText(context, "database create", Toast.LENGTH_LONG).show();
}
Helper.NAME+"TEXT,"
имя столбца будет nameText
. Поэтому вам нужно исправить его как Helper.NAME+" TEXT,"
или Helper.NAME+" "+"TEXT,"
теперь имя столбца будет называться name
а его тип данных будет установлен в TEXT
.
CREATE_TABLE
. Вы найдете ошибку.