Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Java Мобильная разработка (Android)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.09.2012, 09:04   #1
DorianMark
Пользователь
 
Регистрация: 30.10.2011
Сообщений: 15
По умолчанию Невозможность перезаписи строки в БД

Код приложения:
Код:
package ru.dev;

import ru.dev.R;
import android.app.Activity;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;


public class MainActivity extends Activity {


	@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
         Button btnADD,btnREAD,btnCLEAR,btnUPD,btnDEL;
         btnADD = (Button) findViewById(R.id.button1);
         btnREAD = (Button) findViewById(R.id.button2);
         btnCLEAR = (Button) findViewById(R.id.button3);
         btnUPD = (Button) findViewById(R.id.button4);
         btnDEL = (Button) findViewById(R.id.button5);
         final EditText phoneRead;
		 final EditText nameRead;
		 final EditText phoneWrite;
		 final EditText nameWrite;
		 final EditText idUpdDel;
         nameRead = (EditText) findViewById(R.id.editText1);
         phoneRead = (EditText) findViewById(R.id.editText2);
         nameWrite = (EditText) findViewById(R.id.editText3);
         phoneWrite = (EditText) findViewById(R.id.editText4);
         idUpdDel = (EditText) findViewById(R.id.editText5);
         final DBHelper DBOpenHelper;
         DBOpenHelper = new DBHelper(this);    // создаем объект для создания и управления версиями БД
    	 btnADD.setOnClickListener(new View.OnClickListener() {
             public void onClick(View view) {
            	 //обработчик кнопки добавления
             }
         });
         btnREAD.setOnClickListener(new View.OnClickListener() {
             public void onClick(View view) {
            	 nameWrite.setText("");
            	 phoneWrite.setText("");
            	 SQLiteDatabase db = DBOpenHelper.getWritableDatabase(); 
            	 Cursor c = db.query("spis", null, null, null, null, null, null);
                 if (c.moveToFirst()) {
                   int nameColIndex = c.getColumnIndex("name");
                   int phoneColIndex = c.getColumnIndex("phone");
                   do {
                	   nameWrite.setText(nameWrite.getText().toString()+c.getString(nameColIndex)+", ");
                	   phoneWrite.setText(phoneWrite.getText().toString()+c.getString(phoneColIndex)+", ");
                   } while (c.moveToNext());
                 } else
                 c.close();
                 db.close();
             }
         });
         btnCLEAR.setOnClickListener(new View.OnClickListener() {
             public void onClick(View view) {
            	 nameWrite.setText("");
            	 phoneWrite.setText("");
            	 SQLiteDatabase db = DBOpenHelper.getWritableDatabase();
            	 db.delete("spis", null, null);
            	 db.close();
             }
         });
         btnUPD.setOnClickListener(new View.OnClickListener() {
             public void onClick(View view) {
            	 String id = idUpdDel.getText().toString();
            	 SQLiteDatabase db = DBOpenHelper.getWritableDatabase(); 
            	 ContentValues cv = new ContentValues();
            	 if (!id.equalsIgnoreCase("")) {          	   
            	      cv.put("name", "1");
            	      cv.put("phone", "2");
            	      db.update("spis", cv, "id = ?",
            	          new String[] { id });
            	 }
            	 db.close();
             }
         });
         btnDEL.setOnClickListener(new View.OnClickListener() {
             public void onClick(View view) {
            	 String id = idUpdDel.getText().toString();
            	 SQLiteDatabase db = DBOpenHelper.getWritableDatabase();
            	 db.delete("spis", "id = " + id, null);
            	 db.close();
             }
         });
    }
	class DBHelper extends SQLiteOpenHelper {

	    public DBHelper(Context context) {
	      // конструктор суперкласса
	      super(context, "pupil", null, 1);
	    }

	    public void onCreate(SQLiteDatabase db) {
	      // создаем таблицу с полями
	      db.execSQL("create table spis ("
	          + "id integer primary key autoincrement," 
	          + "name text,"
	          + "phone text" + ");");
	    }

	    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

	    }
	  }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
}
При нажатии на кнопку "обновить" вываливается из приложения с ошибкой. Вот лог:
DorianMark вне форума Ответить с цитированием
Старый 24.09.2012, 09:04   #2
DorianMark
Пользователь
 
Регистрация: 30.10.2011
Сообщений: 15
По умолчанию

Лог забыл :-)
Код:
09-24 09:01:13.128: W/dalvikvm(22413): threadid=1: thread exiting with uncaught exception (group=0x40a0e1f8)
09-24 09:01:13.148: E/AndroidRuntime(22413): FATAL EXCEPTION: main
09-24 09:01:13.148: E/AndroidRuntime(22413): android.database.sqlite.SQLiteException: no such column: id: , while compiling: UPDATE spis SET phone=?,name=? WHERE id = ?
09-24 09:01:13.148: E/AndroidRuntime(22413): 	at android.database.sqlite.SQLiteCompiledSql.native_compile(Native Method)
09-24 09:01:13.148: E/AndroidRuntime(22413): 	at android.database.sqlite.SQLiteCompiledSql.<init>(SQLiteCompiledSql.java:68)
09-24 09:01:13.148: E/AndroidRuntime(22413): 	at android.database.sqlite.SQLiteProgram.compileSql(SQLiteProgram.java:143)
09-24 09:01:13.148: E/AndroidRuntime(22413): 	at android.database.sqlite.SQLiteProgram.compileAndbindAllArgs(SQLiteProgram.java:361)
09-24 09:01:13.148: E/AndroidRuntime(22413): 	at android.database.sqlite.SQLiteStatement.acquireAndLock(SQLiteStatement.java:260)
09-24 09:01:13.148: E/AndroidRuntime(22413): 	at android.database.sqlite.SQLiteStatement.executeUpdateDelete(SQLiteStatement.java:84)
09-24 09:01:13.148: E/AndroidRuntime(22413): 	at android.database.sqlite.SQLiteDatabase.updateWithOnConflict(SQLiteDatabase.java:1810)
09-24 09:01:13.148: E/AndroidRuntime(22413): 	at android.database.sqlite.SQLiteDatabase.update(SQLiteDatabase.java:1761)
09-24 09:01:13.148: E/AndroidRuntime(22413): 	at ru.dev.MainActivity$4.onClick(MainActivity.java:90)
09-24 09:01:13.148: E/AndroidRuntime(22413): 	at android.view.View.performClick(View.java:3511)
09-24 09:01:13.148: E/AndroidRuntime(22413): 	at android.view.View$PerformClick.run(View.java:14109)
09-24 09:01:13.148: E/AndroidRuntime(22413): 	at android.os.Handler.handleCallback(Handler.java:605)
09-24 09:01:13.148: E/AndroidRuntime(22413): 	at android.os.Handler.dispatchMessage(Handler.java:92)
09-24 09:01:13.148: E/AndroidRuntime(22413): 	at android.os.Looper.loop(Looper.java:137)
09-24 09:01:13.148: E/AndroidRuntime(22413): 	at android.app.ActivityThread.main(ActivityThread.java:4424)
09-24 09:01:13.148: E/AndroidRuntime(22413): 	at java.lang.reflect.Method.invokeNative(Native Method)
09-24 09:01:13.148: E/AndroidRuntime(22413): 	at java.lang.reflect.Method.invoke(Method.java:511)
09-24 09:01:13.148: E/AndroidRuntime(22413): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
09-24 09:01:13.148: E/AndroidRuntime(22413): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
09-24 09:01:13.148: E/AndroidRuntime(22413): 	at dalvik.system.NativeStart.main(Native Method)
DorianMark вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка перезаписи в файл sqr Общие вопросы Delphi 5 15.03.2012 19:36
Крах системы. Невозможность ее переустановки. Don Karleone Операционные системы общие вопросы 4 06.05.2011 01:13
предусмотреть невозможность деления на 0 Alexandra1991 Помощь студентам 3 08.11.2010 07:37
2 лишних байта при построковой перезаписи Alex Cones Общие вопросы Delphi 8 21.03.2010 18:15