Обновите выбранный столбец в столе SQLite в Android

Мне нужно к обновленным выбранным столбцам в моей базе данных, однако я неспособен получить обновленные данные. Как только пользователь нажимает на следующую кнопку, данные должны быть обновлены. Там полные 12 областей, который должен быть обновлен в столе.

Сценарий - отличающийся бит, у меня уже есть одна деятельность, где, прежде всего, говорят, становятся ли 5 областей вставленными, и в 2-й деятельности я должен ОБНОВИТЬ 5 областей в ТОМ ЖЕ САМОМ СТОЛЕ

Заранее спасибо

Примечание: dba - DBAdapter т.е. база данных, и myDB - SQLiteDatabase

 nxt = (Button)findViewById(R.id.btn_nxt);
          nxt.setOnClickListener(new OnClickListener(){

            public void onClick(View v) {

                String b1=t1.getText().toString();
                String b2=goal_website_trying_to_achieve_edttxt.getText().toString();
                String b3=communicate_edttxt.getText().toString();
                String b4=success_look_like_edttxt.getText().toString();
                String b5=usp_insights_edttxt.getText().toString();
                String b6=act_edttxt.getText().toString();
                String b7=market_edttxt.getText().toString();
                String b8=your_current_website_www_edttxt.getText().toString();
                String b9=your_current_website_good_edttxt.getText().toString();
                String b10=your_current_website_bad_edttxt.getText().toString();
                String b11=your_current_website_type_edttxt.getText().toString();
                String b12=your_current_website_update_edttxt.getText().toString();
                String b13=your_current_website_supporting_edttxt.getText().toString();

                if(!validatescreen2()){
                    return;
                }

                else{

                    myDB = DBAdapter.openDatabase(Newform_Screen2.this,DBAdapter.DATABASE_TABLE);




                    String updatequery = "UPDATE"+ DBAdapter.DATABASE_TABLE+ " SET ";       

                    updatequery = updatequery + " KEY_MESSAGE_1 = '" + b1 + "',";
                    updatequery = updatequery + " KEY_MESSAGE_2 = '" + b2 + "',";
                    updatequery = updatequery + " KEY_MESSAGE_3 = '" + b3 + "',";
                    updatequery = updatequery + " KEY_MESSAGE_4 = '" + b4 + "',";
                    updatequery = updatequery + " KEY_MESSAGE_5 = '" + b5 + "',";
                    updatequery = updatequery + " KEY_MESSAGE_6 = '" + b6 + "',";
                    updatequery = updatequery + " KEY_YOUR_CURRENT_WEBSITE_1 = '" + b7 + "',";
                    updatequery = updatequery + " KEY_YOUR_CURRENT_WEBSITE_2 = '" + b8 + "',";
                    updatequery = updatequery + " KEY_YOUR_CURRENT_WEBSITE_3 = '" + b9 + "',";
                    updatequery = updatequery + " KEY_YOUR_CURRENT_WEBSITE_TYPE = '" + b10 + "',";
                    updatequery = updatequery + " KEY_YOUR_CURRENT_WEBSITE_NEED = '" + b11 + "',";
                    updatequery = updatequery + " KEY_YOUR_CURRENT_WEBSITE_OTHER = '" + b12 + ",";

                    updatequery = updatequery +  "WHERE" + DBAdapter.KEY_ROWID + "=" + mRowId +"';";

                    try{
                        myDB.execSQL(updatequery);
                    }catch(Exception e){
                        //Log("Caught while writing response" + e.getLocalizedMessage());
                    }finally{
                        if(myDB != null)myDB.close();
                        showDialog(DIALOG_ID);
                    }

                }
            }
          });

и в DBAdapter класс

public static SQLiteDatabase openDatabase(Context context, String DBname){
    SQLiteDatabase myDB;
    myDB = context.openOrCreateDatabase(DBname,Context.MODE_PRIVATE, null);
    Cursor rs = null;
    boolean tableExists;
    try{
        rs = myDB.rawQuery("SELECT * FROM " + DATABASE_TABLE + " WHERE 1=0", null );
        tableExists = true;
    }catch(Exception ex){
        tableExists = false;
    }finally{
        if (rs != null) rs.close();
    }
    if(!tableExists) {
        myDB.execSQL(DATABASE_CREATE);
    }

    return myDB;
}

public static void executeQuery(SQLiteDatabase db,String query){

    if(db != null){
        db.execSQL(query);
    }

}

public static Cursor selectQuery(SQLiteDatabase db,String query){

    if(db != null)
    {
        Cursor c = db.rawQuery(query,null);
        return c;
    }
    else
    return null;

}

public static void closeDatabase(SQLiteDatabase db){
    if (db != null)
    {
        //Log("Closing Database conn");
        db.close();
    }
}

после внесения изменений, но все еще неспособный обновить.. я должен внести какое-либо другое изменение??

dba.open();
                        ContentValues args = new ContentValues();
                        args.put(DBAdapter.KEY_MESSAGE_1, b2);
                        args.put(DBAdapter.KEY_MESSAGE_2, b3);
                        args.put(DBAdapter.KEY_MESSAGE_3, b4);
                        args.put(DBAdapter.KEY_MESSAGE_4, b5);
                        args.put(DBAdapter.KEY_MESSAGE_5, b6);
                        args.put(DBAdapter.KEY_MESSAGE_6, b7);
                        args.put(DBAdapter.KEY_YOUR_CURRENT_WEBSITE_1, b8);
                        args.put(DBAdapter.KEY_YOUR_CURRENT_WEBSITE_2, b9);
                        args.put(DBAdapter.KEY_YOUR_CURRENT_WEBSITE_3, b10);
                        args.put(DBAdapter.KEY_YOUR_CURRENT_WEBSITE_TYPE, b11);
                        args.put(DBAdapter.KEY_YOUR_CURRENT_WEBSITE_NEED, b12);
                        args.put(DBAdapter.KEY_YOUR_CURRENT_WEBSITE_OTHER, b13);

                        String where = "_id = " + mRowId.toString();

                myDB.update(DBAdapter.DATABASE_TABLE, args,where, null);    
                            dba.close();
                            showDialog(DIALOG_ID);
                    }


                }

              });

после добавляющей попытки/выгоды

try{
                        myDB.beginTransaction();
                dba.open();
                ContentValues args = new ContentValues();
                args.put(DBAdapter.KEY_MESSAGE_1, b2);
                args.put(DBAdapter.KEY_MESSAGE_2, b3);
                args.put(DBAdapter.KEY_MESSAGE_3, b4);
                args.put(DBAdapter.KEY_MESSAGE_4, b5);
                args.put(DBAdapter.KEY_MESSAGE_5, b6);
                args.put(DBAdapter.KEY_MESSAGE_6, b7);
                args.put(DBAdapter.KEY_YOUR_CURRENT_WEBSITE_1, b8);
                args.put(DBAdapter.KEY_YOUR_CURRENT_WEBSITE_2, b9);
                args.put(DBAdapter.KEY_YOUR_CURRENT_WEBSITE_3, b10);
                args.put(DBAdapter.KEY_YOUR_CURRENT_WEBSITE_TYPE, b11);
                args.put(DBAdapter.KEY_YOUR_CURRENT_WEBSITE_NEED, b12);
                args.put(DBAdapter.KEY_YOUR_CURRENT_WEBSITE_OTHER, b13);

                String where =DBAdapter.KEY_ROWID +"=" + mRowId.toString();


                myDB.update(DBAdapter.DATABASE_TABLE, args,where, null);
                myDB.setTransactionSuccessful();
                    dba.close();

                    showDialog(DIALOG_ID);
                    }
                    catch(Exception e){
                        e.printStackTrace();
                    }
                     finally {
                        myDB.endTransaction();
                       }
                }


            }

          });

теперь я получаю эту ошибку

01-29 17:52:38.874: W/System.err(9257): java.lang.NullPointerException
01-29 17:52:38.874: W/System.err(9257):     at com.example.sales.Newform_Screen2$3.onClick(Newform_Screen2.java:150)
01-29 17:52:38.874: W/System.err(9257):     at android.view.View.performClick(View.java:4084)
01-29 17:52:38.883: W/System.err(9257):     at android.view.View$PerformClick.run(View.java:16966)
01-29 17:52:38.883: W/System.err(9257):     at android.os.Handler.handleCallback(Handler.java:615)
01-29 17:52:38.883: W/System.err(9257):     at android.os.Handler.dispatchMessage(Handler.java:92)
01-29 17:52:38.893: W/System.err(9257):     at android.os.Looper.loop(Looper.java:137)
01-29 17:52:38.893: W/System.err(9257):     at android.app.ActivityThread.main(ActivityThread.java:4745)
01-29 17:52:38.893: W/System.err(9257):     at java.lang.reflect.Method.invokeNative(Native Method)
01-29 17:52:38.893: W/System.err(9257):     at java.lang.reflect.Method.invoke(Method.java:511)
01-29 17:52:38.893: W/System.err(9257):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
01-29 17:52:38.893: W/System.err(9257):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
1
nl ja de
don' t используют execSQL. that' s, как, первая линия sqlite документации относительно андроида?
добавлено автор njzk2, источник
(для одного у вас нет способа знать, что ваших данных об обновлении правильно избегают с вашим методом),
добавлено автор njzk2, источник
я don' t предлагают что-либо. андроид делает. "you' ре, поощренное использовать (...) обновление" that' s метод от SQLiteDatabase. (PS: проблема, с которой вы сталкиваетесь, довольно тривиальна, you' ll находят, где это, читая ваш код снова и снова. но используя ' update' вы wouldn' t имеют к. Кроме того, читая, и регистрация, stacktrace помог бы вам),
добавлено автор njzk2, источник
нет, android2013 ответ правильно. You' ll избегают опечаток в написании вашего вопроса (который является причиной, которую ваш вопрос в настоящее время подводит, btw),
добавлено автор njzk2, источник
я don' у t есть код для ваших целых действий, и ваш вопрос не очень ясен, но у вас есть опечатка в вашем вопросе (плюс недостатки безопасности), который вы wouldn' t имеют, если вы использовали обновление()
добавлено автор njzk2, источник
@njzk2: пожалуйста, предложите то, что должно использоваться
добавлено автор Shweta, источник
@android2013: сценарий - отличающийся бит, у меня уже есть одна деятельность, где, прежде всего, говорят, становятся ли 5 областей вставленными, и в 2-й деятельности я должен ОБНОВИТЬ 5 областей в ТОМ ЖЕ САМОМ СТОЛЕ
добавлено автор Shweta, источник
Таким образом согласно вам, я должен обновить отдых ценностей в Деятельности 2?? использование связь
добавлено автор Shweta, источник

3 ответы

Use update method.

public int update (String table, ContentValues values, String whereClause, String[] whereArgs)

Convenience method for updating rows in the database. You can get more information from
- http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html#update

0
добавлено
Попробуйте этот ' Последовательность, где = DBAdapter. KEY_ROWID + "=?"; Натяните whereArgs [] = новая Последовательность [] {mRowId.toString ()}; myDB.update (DBAdapter. DATABASE_TABLE, args, где, whereArgs); '
добавлено автор Anukool, источник
Также можете вы публиковать свой полный код.
добавлено автор Anukool, источник
пожалуйста, взгляните на вышеупомянутые внесенные изменения.. но все еще неспособный обновить
добавлено автор Shweta, источник

Используйте метод обновления вместо вопроса как myDB.update (mTableName, ценности, sWhereClause, пустой указатель); ценности - объект ContentValues, поместите все свои области и ценности в этом объекте, sWhereClause то, где пункт без где слово на отобранных областях как имя ='xyz'

0
добавлено
Пожалуйста, поместите выгоду попытки вокруг обновления и напечатайте сообщение об ошибке в пульте.
добавлено автор android2013, источник
по всей вероятности, ваш mRowId неправильный, обновление возвратит стоимость (количество обновленных рядов) печатают их, если вы видите количество обновления.
добавлено автор android2013, источник
пожалуйста, взгляните на вышеупомянутые внесенные изменения.. но все еще неспособный обновить
добавлено автор Shweta, источник
я пытался использовать попытку/выгоду.. взглянуть.. Я добавил код
добавлено автор Shweta, источник
пожалуйста, взгляните.. СЗ я получаю эту ошибку
добавлено автор Shweta, источник

Очевидно, вы делаете много ошибок в вашем SQLite-заявлении. В первую очередь, последнее"", должно быть удалено, прежде чем вы напишете "ГДЕ". Во-вторых, должны быть Места прежде и после "ГДЕ". И наконец, что не менее важно, вам нужен a""; В ВАШЕЙ SQLite-строке-запроса В КОНЦЕ ПОСЛЕДОВАТЕЛЬНОСТИ. Хорошо эти 3 вещи не могли бы полностью решить проблему, но они должны, по крайней мере, заставить вас стать ближе к решению.

0
добавлено
Mobile Dev Jobs — вакансии и аналитика
Mobile Dev Jobs — вакансии и аналитика
6 187 участник(ов)

Публикуем вакансии и запросы на поиск работы по направлению iOS, Android, Xamarin и т.д. ВАЖНО: Правила публикации и правила канала: Ссылка – https://telegra.ph/Pravila-oformleniya-vakansij-i-rezyume-11-09-2

Android Developers
Android Developers
4 476 участник(ов)

Общаемся на темы, посвященным Android-разработке, SDK, Kotlin, Realm и т.д.

Android Architecture
Android Architecture
2 186 участник(ов)

Русскоязычный чат по архитектуре в андроид приложениях. Подробнее: http://telegra.ph/Android-Architecture-12-24

rus-speaking/android
rus-speaking/android
1 705 участник(ов)

Основной чат по Android разработке (вопрос-ответ). ПРАВИЛА: bit.ly/andr-rules. NEWS: bit.ly/AnrdResId ЧАТЫ: Основной: bit.ly/andr-main IDE, сборка, Git, сервисы: bit.ly/andr-tools Оффтоп: bit.ly/andr-offtop Конференции, события: bit.ly/andr-events Вакансии, найм: bit.ly/andr-job Архитектура: bit.ly/andr-patterns Rx: bit.ly/andr-rx Тестирование: bit.ly/andr-test Kotlin: bit.ly/andr-kotlin Хаmarin: bit.ly/andr-xamarin За мат, спам, агрессию, предложения о работе, оффтоп в этом канале - бан на сутки и более ☢☢☢

Android Dev Подкаст
Android Dev Подкаст
1 325 участник(ов)

Комната для обсуждения Android Dev подкаста apptractor.ru/AndroidDev/ Общее обсуждение Android: https://t.me/android_ru Остальные чаты про Android: http://t.me/devChats Наши новости https://t.me/androiddevpodcast_news

SqlCom.ru - Стиль жизни SQL
SqlCom.ru - Стиль жизни SQL
908 участник(ов)

Правила чата - https://t.me/sqlcom/88269 @sqlcom - основной канал (только MS SQL) @sql_ninja - второй канал (SQL вопросы начального уровня и свободное общение) @Gopnegbot - Викторина по SQL Server (наберите в привате /quiz). Предложения в @sql_ninja

Android Guards
Android Guards
602 участник(ов)

Обсуждение любых вопросов касающихся безопасности Android. - Защита системы и приложений - Уязвимости и эксплойты - Вредоносное ПО - Копание в кишках системы и приложений (RE)

Android JOB
Android JOB
466 участник(ов)

Публикуем вакансии и запросы на поиск работы по направлению Android (full-time, part-time, remote и разовые подработки)

AndroidDev :: Разработка. It's Android time now!
AndroidDev :: Разработка. It's Android time now!
458 участник(ов)

It's Android time now! Чат разработчиков Android. Вакансии, резюме и информацию о митапах размещать можно. Публикацию скрытой и явной рекламы ваших каналов и сайтов после получения разрешения от @olegushakov

SQL_Ninja
SQL_Ninja
340 участник(ов)

Правила чата - https://t.me/sqlcom/88269 @sqlcom - основной канал (только SQL) @sql_ninja - второй канал (SQL вопросы начального уровня и свободное общение) @Gopnegbot - Викторина по SQL Server (наберите в привате /quiz)

Aandroid Talks!
Aandroid Talks!
212 участник(ов)

Чат об общих вопросах по ОС Android. Чат для разработки под андроид - pro.android: https://t.me/joinchat/AAAAAEKIFKnmRT9cMebb9w

Android Rus
Android Rus
68 участник(ов)