Урок 35. SQLite. Методы update и delete с указанием условия
Re: Урок 35. SQLite. Методы update и delete с указанием усло
Всем привет.
А как провести соответствие между пунктами списка и записями в БД? Допустим хочу удалить первую запись. Вызываю контекстное меню, по позиции view удаляю запись в бд. Но после этого позиции в списке перестают соответстовать id в БД.
Еще один вопрос, как получить определенную запись по ее ID? Погуглил в рунете... все статьи про работы с MySQL в Андроид-перепечатки одного и того же источника, и в них работа ведется со всеми записями в таблице одновременно.
П.С. Со вторым вопросом разобрался. Постоянно ловил эксепшн, оказалось что по умолчанию позиция в курсоре = -1. moveToNext() решает.
А как провести соответствие между пунктами списка и записями в БД? Допустим хочу удалить первую запись. Вызываю контекстное меню, по позиции view удаляю запись в бд. Но после этого позиции в списке перестают соответстовать id в БД.
Еще один вопрос, как получить определенную запись по ее ID? Погуглил в рунете... все статьи про работы с MySQL в Андроид-перепечатки одного и того же источника, и в них работа ведется со всеми записями в таблице одновременно.
П.С. Со вторым вопросом разобрался. Постоянно ловил эксепшн, оказалось что по умолчанию позиция в курсоре = -1. moveToNext() решает.
Re: Урок 35. SQLite. Методы update и delete с указанием усло
для этого необходимо юзать SimpleCursorAdapter и тогда не будет необходимости вообще думать о соответствии айди листа и айди таблицы. И не забывайте после удаления данных с таблицы делать notifyDataSetChanged()А как провести соответствие между пунктами списка и записями в БД? Допустим хочу удалить первую запись. Вызываю контекстное меню, по позиции view удаляю запись в бд. Но после этого позиции в списке перестают соответстовать id в БД.
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Урок 35. SQLite. Методы update и delete с указанием усло
SimpleCursorAdapter у меня кастомный. Удаляю через контекстное меню:
В адаптере удаляю запись так:
Явно делаю не так как надо. acmi.position совсем не равно COLUMN_ID записи.
Кстати в onItemClick(AdapterView<?> parent, View view, int position, long id) long id то что надо - _id записи.
Код: Выделить всё
public boolean onContextItemSelected(MenuItem item) {
AdapterContextMenuInfo acmi = (AdapterContextMenuInfo) item
.getMenuInfo();
switch (item.getItemId()) {
case CM_DELETE_ID:
db.delRec(acmi.position);
cursor.requery();
return true;
}
return super.onContextItemSelected(item);
}
Код: Выделить всё
public void delRec(long id) {
mDB.delete(DB_TABLE, COLUMN_ID + " = " + id, null);
}
Кстати в onItemClick(AdapterView<?> parent, View view, int position, long id) long id то что надо - _id записи.
Re: Урок 35. SQLite. Методы update и delete с указанием усло
Код: Выделить всё
onItemClick(AdapterView<?> parent, View view, int position, long id)
id - айди в базе данных
они и не должны быть равны
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Урок 35. SQLite. Методы update и delete с указанием усло
Это все понятно:) Вопрос в том, как через контекстное меню удалять записи. Одна из моих идей - запоминать _id в tag пункта списка и по нему удалять записи. Но чувствую можно проще.
Re: Урок 35. SQLite. Методы update и delete с указанием усло
Вам необходимо предусмотреть в своем адаптере метод, который по позиции будет возвращать id записи, и не нужно пытаться делать велосипед через TAG.
Сразу скажу, вы не одиноки, у самого первая мысль была передавать через TAG, пока не прочитал все про создание адаптеров.
Сразу скажу, вы не одиноки, у самого первая мысль была передавать через TAG, пока не прочитал все про создание адаптеров.
Re: Урок 35. SQLite. Методы update и delete с указанием усло
rezak90, neoksi, ребята, спасибо за помощь.
В адаптере добавил вот такой метод получения _id записи по position в списке:
В адаптере добавил вот такой метод получения _id записи по position в списке:
Код: Выделить всё
public long getID(int position){
return this.getItemId(position);
}
Re: Урок 35. SQLite. Методы update и delete с указанием усло
Ну и я спрошу немного
хотелось бы знать, что это за параметр:
int updCount = db.update("mytable", cv, "id = ?", new String[] { id });
а то по написанному в уроке не очень понял.
И еще, если я например дальше буду обновлять приложение, БД будет оставаться с данными, или будет тож обновляться, данные не будут теряться?
хотелось бы знать, что это за параметр:
int updCount = db.update("mytable", cv, "id = ?", new String[] { id });
а то по написанному в уроке не очень понял.
И еще, если я например дальше буду обновлять приложение, БД будет оставаться с данными, или будет тож обновляться, данные не будут теряться?
Re: Урок 35. SQLite. Методы update и delete с указанием усло
Это значения, для предыдущего параметра: строки "id = ?"kudri писал(а):хотелось бы знать, что это за параметр:
int updCount = db.update("mytable", cv, "id = ?", new String[] { id });
Значения из массива будут подставлены вместо знаков ? в строку условия.
Re: Урок 35. SQLite. Методы update и delete с указанием усло
Изменение приложения не повлияет на структуру БД. Данные будут хранится, читаться и записываться.kudri писал(а):если я например дальше буду обновлять приложение, БД будет оставаться с данными, или будет тож обновляться, данные не будут теряться?
А вот если надумаете менять структуру БД, то там уже придется предусмотреть процедуру обновления. Об этом в Уроке 39.
Re: Урок 35. SQLite. Методы update и delete с указанием усло
Я делаю апдейт по аргументу - _id записи в базе, помещаю этот аргумент в массив и указываю "_id=?".....тут все работает, все понятно.
НО - я что-то не понимаю, как это, когда несколько данных в массиве аргументов для апдейта...можно ли привести пример? Как это, когда несколько знаков вопроса пишется и что это в реальности, т.е. что это за аргументы? Правильно ли я понимаю, что это выглядит так - апдейтить запись, у которой выполняются условия - {условие 1, условия 2, условия 3}
НО - я что-то не понимаю, как это, когда несколько данных в массиве аргументов для апдейта...можно ли привести пример? Как это, когда несколько знаков вопроса пишется и что это в реальности, т.е. что это за аргументы? Правильно ли я понимаю, что это выглядит так - апдейтить запись, у которой выполняются условия - {условие 1, условия 2, условия 3}
-
- Сообщения: 7
- Зарегистрирован: 24 ноя 2012, 22:41
Re: Урок 35. SQLite. Методы update и delete с указанием усло
очень хотелось бы спросить по поводу ошибок, их сильно много
Код программы:
main.xml
MainActivity.java
из-за чего возникает данная ошибка и как с ней можно бороться, ведь нужный столбец я создаю?
Код: Выделить всё
11-26 23:20:19.108: I/SqliteDatabaseCpp(10327): sqlite returned: error code = 1, msg = table mytable has no column named addresse, db=/data/data/kalim.firstsql/databases/myDB2
11-26 23:20:19.118: E/SQLiteDatabase(10327): Error inserting addresse=f other_information= education=g telephone=5 email=r name=g
11-26 23:20:19.118: E/SQLiteDatabase(10327): android.database.sqlite.SQLiteException: table mytable has no column named addresse: , while compiling: INSERT INTO mytable(addresse,other_information,education,telephone,email,name) VALUES (?,?,?,?,?,?)
11-26 23:20:19.118: E/SQLiteDatabase(10327): at android.database.sqlite.SQLiteCompiledSql.native_compile(Native Method)
11-26 23:20:19.118: E/SQLiteDatabase(10327): at android.database.sqlite.SQLiteCompiledSql.<init>(SQLiteCompiledSql.java:68)
11-26 23:20:19.118: E/SQLiteDatabase(10327): at android.database.sqlite.SQLiteProgram.compileSql(SQLiteProgram.java:143)
11-26 23:20:19.118: E/SQLiteDatabase(10327): at android.database.sqlite.SQLiteProgram.compileAndbindAllArgs(SQLiteProgram.java:361)
11-26 23:20:19.118: E/SQLiteDatabase(10327): at android.database.sqlite.SQLiteStatement.acquireAndLock(SQLiteStatement.java:260)
11-26 23:20:19.118: E/SQLiteDatabase(10327): at android.database.sqlite.SQLiteStatement.executeInsert(SQLiteStatement.java:112)
11-26 23:20:19.118: E/SQLiteDatabase(10327): at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1718)
11-26 23:20:19.118: E/SQLiteDatabase(10327): at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1591)
11-26 23:20:19.118: E/SQLiteDatabase(10327): at kalim.firstsql.MainActivity.onClick(MainActivity.java:95)
11-26 23:20:19.118: E/SQLiteDatabase(10327): at android.view.View.performClick(View.java:3534)
11-26 23:20:19.118: E/SQLiteDatabase(10327): at android.view.View$PerformClick.run(View.java:14263)
11-26 23:20:19.118: E/SQLiteDatabase(10327): at android.os.Handler.handleCallback(Handler.java:605)
11-26 23:20:19.118: E/SQLiteDatabase(10327): at android.os.Handler.dispatchMessage(Handler.java:92)
11-26 23:20:19.118: E/SQLiteDatabase(10327): at android.os.Looper.loop(Looper.java:137)
11-26 23:20:19.118: E/SQLiteDatabase(10327): at android.app.ActivityThread.main(ActivityThread.java:4441)
11-26 23:20:19.118: E/SQLiteDatabase(10327): at java.lang.reflect.Method.invokeNative(Native Method)
11-26 23:20:19.118: E/SQLiteDatabase(10327): at java.lang.reflect.Method.invoke(Method.java:511)
11-26 23:20:19.118: E/SQLiteDatabase(10327): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
11-26 23:20:19.118: E/SQLiteDatabase(10327): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
11-26 23:20:19.118: E/SQLiteDatabase(10327): at dalvik.system.NativeStart.main(Native Method)
11-26 23:20:19.118: D/myLogs(10327): row inserted, ID = -1
main.xml
Код: Выделить всё
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
/*<LinearLayout
android:id="@+id/linearLayout4"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginRight="25dp"
android:text="ID" >
</TextView>
<EditText
android:id="@+id/etID"
android:layout_width="70dp"
android:layout_height="wrap_content"
android:layout_marginTop="2dp" >
</EditText>
<Button
android:id="@+id/btnUpd"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Update" >
</Button>
<Button
android:id="@+id/btnDel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Delete" >
</Button>
</LinearLayout>
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:text="Name" >
</TextView>
<EditText
android:id="@+id/etName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1" >
<requestFocus>
</requestFocus>
</EditText>*/
</LinearLayout>
<LinearLayout
android:id="@+id/linearLayout3"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:text="Email" >
</TextView>
<EditText
android:id="@+id/etEmail"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="2.41"
android:ems="10"
android:inputType="textEmailAddress" />
</LinearLayout>
<LinearLayout
android:id="@+id/linearLayout4"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Telephone" />
<EditText
android:id="@+id/etPhone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="phone" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Address" />
<EditText
android:id="@+id/etAddresse"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textPostalAddress" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Education" />
<EditText
android:id="@+id/etEdu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textMultiLine" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:id="@+id/textView5"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Other informations"
android:textAppearance="?android:attr/textAppearanceLarge" />
<EditText
android:id="@+id/etOInf"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textMultiLine" />
</LinearLayout>
<LinearLayout
android:id="@+id/linearLayout2"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<Button
android:id="@+id/btnAdd"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Add" />
<Button
android:id="@+id/btnRead"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Read" />
<Button
android:id="@+id/btnClear"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Clear" />
</LinearLayout>
</LinearLayout>
Код: Выделить всё
package ru.startandroid.develop.p0341simplesqlite;
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.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends Activity implements OnClickListener {
final String LOG_TAG = "myLogs";
Button btnAdd, btnRead, btnClear, btnUpd, btnDel;
EditText etName, etEmail, etID, etPhone, etAddresse, etEdu, etOInf ;
DBHelper dbHelper;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btnAdd = (Button) findViewById(R.id.btnAdd);
btnAdd.setOnClickListener(this);
btnRead = (Button) findViewById(R.id.btnRead);
btnRead.setOnClickListener(this);
btnClear = (Button) findViewById(R.id.btnClear);
btnClear.setOnClickListener(this);
btnUpd = (Button) findViewById(R.id.btnUpd);
btnUpd.setOnClickListener(this);
btnDel = (Button) findViewById(R.id.btnDel);
btnDel.setOnClickListener(this);
etName = (EditText) findViewById(R.id.etName);
etEmail = (EditText) findViewById(R.id.etEmail);
etID = (EditText) findViewById(R.id.etID);
etPhone = (EditText) findViewById(R.id.etPhone);
etAddresse = (EditText) findViewById(R.id.etAddresse);
etEdu = (EditText) findViewById(R.id.etEdu);
etOInf = (EditText) findViewById(R.id.etOInf);
// создаем объект для создания и управления версиями БД
dbHelper = new DBHelper(this);
}
@Override
public void onClick(View v) {
// создаем объект для данных
ContentValues cv = new ContentValues();
// получаем данные из полей ввода
String name = etName.getText().toString();
String email = etEmail.getText().toString();
String id = etID.getText().toString();
String phone = etPhone.getText().toString();
String addresse = etAddresse.getText().toString();
String education = etEdu.getText().toString();
String other_inf = etOInf.getText().toString();
// подключаемся к БД
SQLiteDatabase db = dbHelper.getWritableDatabase();
switch (v.getId()) {
case R.id.btnAdd:
Log.d(LOG_TAG, "--- Insert in mytable: ---");
// подготовим данные для вставки в виде пар: наименование столбца - значение
cv.put("name", name);
cv.put("email", email);
cv.put("telephone", phone);
cv.put("addresse", addresse);
cv.put("education", education);
cv.put("other_information", other_inf);
// вставляем запись и получаем ее ID
long rowID = db.insert("mytable", null, cv);
Log.d(LOG_TAG, "row inserted, ID = " + rowID);
break;
case R.id.btnRead:
Log.d(LOG_TAG, "--- Rows in mytable: ---");
// делаем запрос всех данных из таблицы mytable, получаем Cursor
Cursor c = db.query("mytable", null, null, null, null, null, null, null);
// ставим позицию курсора на первую строку выборки
// если в выборке нет строк, вернется false
if (c.moveToFirst()) {
// определяем номера столбцов по имени в выборке
int idColIndex = c.getColumnIndex("id");
int nameColIndex = c.getColumnIndex("name");
int emailColIndex = c.getColumnIndex("email");
int telephoneColIndex = c.getColumnIndex("telephone");
int addresseColIndex = c.getColumnIndex("addresse");
int educationColIndex = c.getColumnIndex("education");
int other_infColIndex = c.getColumnIndex("other_inf");
do {
// получаем значения по номерам столбцов и пишем все в лог
Log.d(LOG_TAG,
"ID = " + c.getInt(idColIndex) +
", name = " + c.getString(nameColIndex) +
", email = " + c.getString(emailColIndex)+
", telephone ="+c.getString(telephoneColIndex)+
", addresse = "+c.getString(addresseColIndex)+
", education=" +c.getString(educationColIndex)+
", other_informations=" +c.getString(other_infColIndex));
// переход на следующую строку
// а если следующей нет (текущая - последняя), то false - выходим из цикла
} while (c.moveToNext());
} else
Log.d(LOG_TAG, "0 rows");
c.close();
break;
case R.id.btnClear:
Log.d(LOG_TAG, "--- Clear mytable: ---");
// удаляем все записи
int clearCount = db.delete("mytable", null, null);
Log.d(LOG_TAG, "deleted rows count = " + clearCount);
break;
case R.id.btnUpd:
if (id.equalsIgnoreCase("")) {
break;
}
Log.d(LOG_TAG, "--- Update mytabe: ---");
// подготовим значения для обновления
cv.put("name", name);
cv.put("email", email);
cv.put("telephone", phone);
cv.put("addresse", addresse);
cv.put("education", education);
cv.put("other_information", other_inf);
// обновляем по id
int updCount = db.update("mytable", cv, "id = ?",
new String[] { id });
Log.d(LOG_TAG, "updated rows count = " + updCount);
break;
case R.id.btnDel:
if (id.equalsIgnoreCase("")) {
break;
}
Log.d(LOG_TAG, "--- Delete from mytabe: ---");
// удаляем по id
int delCount = db.delete("mytable", "id = " + id, null);
Log.d(LOG_TAG, "deleted rows count = " + delCount);
break;
}
// закрываем подключение к БД
dbHelper.close();
}
class DBHelper extends SQLiteOpenHelper {
public DBHelper(Context context) {
// конструктор суперкласса
super(context, "myDB2", null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
Log.d(LOG_TAG, "--- onCreate database ---");
// создаем таблицу с полями
db.execSQL("create table mytable ("
+ "id integer primary key autoincrement,"
+ "name text,"
+ "email text"
+ "telephone text"
+ "addresse text"
+ "education text"
+ "other_information text" + ");");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
}
из-за чего возникает данная ошибка и как с ней можно бороться, ведь нужный столбец я создаю?
Re: Урок 35. SQLite. Методы update и delete с указанием усло
у вас запятых нету при создании таблицы (смотрите внимательно после email text и т.д.)))) вот она и не создаёт
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
-
- Сообщения: 7
- Зарегистрирован: 24 ноя 2012, 22:41
Re: Урок 35. SQLite. Методы update и delete с указанием усло
запятые я расставил, но всё равно ошибка сохраняетсяrezak90 писал(а):у вас запятых нету при создании таблицы (смотрите внимательно после email text и т.д.)))) вот она и не создаёт
Re: Урок 35. SQLite. Методы update и delete с указанием усло
убейте приложение и все данные связанные с ней с эмулятора/телефона, может вы то раставили запятые, но бд существует и таблица уже не создаётся, а её нужно пересоздать
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
-
- Сообщения: 7
- Зарегистрирован: 24 ноя 2012, 22:41
Re: Урок 35. SQLite. Методы update и delete с указанием усло
спасибо большое, помогло, но при нажатии кнопки Read (уже есть 2 тестовых записи), приложение вываливается, в дебаге пишет вот этоrezak90 писал(а):убейте приложение и все данные связанные с ней с эмулятора/телефона, может вы то раставили запятые, но бд существует и таблица уже не создаётся, а её нужно пересоздать
Код: Выделить всё
11-27 17:24:28.300: D/TextLayoutCache(32009): Using debug level: 0 - Debug Enabled: 0
11-27 17:24:31.370: D/myLogs(32009): --- Rows in mytable: ---
11-27 17:24:31.370: E/CursorWindow(32009): Failed to read row 0, column -1 from a CursorWindow which has 1 rows, 7 columns.
11-27 17:24:31.370: D/AndroidRuntime(32009): Shutting down VM
11-27 17:24:31.370: W/dalvikvm(32009): threadid=1: thread exiting with uncaught exception (group=0x2b542210)
11-27 17:24:31.380: E/AndroidRuntime(32009): FATAL EXCEPTION: main
11-27 17:24:31.380: E/AndroidRuntime(32009): java.lang.IllegalStateException: Couldn't read row 0, col -1 from CursorWindow. Make sure the Cursor is initialized correctly before accessing data from it.
11-27 17:24:31.380: E/AndroidRuntime(32009): at android.database.CursorWindow.nativeGetString(Native Method)
11-27 17:24:31.380: E/AndroidRuntime(32009): at android.database.CursorWindow.getString(CursorWindow.java:442)
11-27 17:24:31.380: E/AndroidRuntime(32009): at android.database.AbstractWindowedCursor.getString(AbstractWindowedCursor.java:51)
11-27 17:24:31.380: E/AndroidRuntime(32009): at kalim.firstsql.MainActivity.onClick(MainActivity.java:125)
11-27 17:24:31.380: E/AndroidRuntime(32009): at android.view.View.performClick(View.java:3534)
11-27 17:24:31.380: E/AndroidRuntime(32009): at android.view.View$PerformClick.run(View.java:14263)
11-27 17:24:31.380: E/AndroidRuntime(32009): at android.os.Handler.handleCallback(Handler.java:605)
11-27 17:24:31.380: E/AndroidRuntime(32009): at android.os.Handler.dispatchMessage(Handler.java:92)
11-27 17:24:31.380: E/AndroidRuntime(32009): at android.os.Looper.loop(Looper.java:137)
11-27 17:24:31.380: E/AndroidRuntime(32009): at android.app.ActivityThread.main(ActivityThread.java:4441)
11-27 17:24:31.380: E/AndroidRuntime(32009): at java.lang.reflect.Method.invokeNative(Native Method)
11-27 17:24:31.380: E/AndroidRuntime(32009): at java.lang.reflect.Method.invoke(Method.java:511)
11-27 17:24:31.380: E/AndroidRuntime(32009): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
11-27 17:24:31.380: E/AndroidRuntime(32009): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
11-27 17:24:31.380: E/AndroidRuntime(32009): at dalvik.system.NativeStart.main(Native Method)
Последний раз редактировалось Kalim32rus 27 ноя 2012, 17:27, всего редактировалось 1 раз.
Re: Урок 35. SQLite. Методы update и delete с указанием усло
Вы создаете столбец other_information, а читать пытаетесь из other_inf. У курсора есть вполне обоснованные претензии по этому поводу )Kalim32rus писал(а):но при нажатии кнопки Read (уже есть 2 тестовых записи), приложение вываливается, в дебаге пишет вот это
-
- Сообщения: 7
- Зарегистрирован: 24 ноя 2012, 22:41
Re: Урок 35. SQLite. Методы update и delete с указанием усло
спасибо, проблему решил, в отладчике всё красиво, последний вопрос: можно ли как то организовать вывод в те строки, откуда идёт считывание данных для занесения в таблицу? какой урок посмотреть?damager82 писал(а):Вы создаете столбец other_information, а читать пытаетесь из other_inf. У курсора есть вполне обоснованные претензии по этому поводу )Kalim32rus писал(а):но при нажатии кнопки Read (уже есть 2 тестовых записи), приложение вываливается, в дебаге пишет вот это
Re: Урок 35. SQLite. Методы update и delete с указанием усло
Вопрос не оч понятен. Типа есть EditText, из него берем значение, по этому значению выбираем данные из БД и вставляем их в этот же EditText - так чтоль?Kalim32rus писал(а):можно ли как то организовать вывод в те строки, откуда идёт считывание данных для занесения в таблицу? какой урок посмотреть?
-
- Сообщения: 7
- Зарегистрирован: 24 ноя 2012, 22:41
Re: Урок 35. SQLite. Методы update и delete с указанием усло
принцип такой, у нас есть второй activity и в него мы должны вывести(сейчас только придумал) TextView может быть один всего, но данные нужно как-то структурировать, мне интересен вывод данных применительно к Вашему примеруdamager82 писал(а):Вопрос не оч понятен. Типа есть EditText, из него берем значение, по этому значению выбираем данные из БД и вставляем их в этот же EditText - так чтоль?Kalim32rus писал(а):можно ли как то организовать вывод в те строки, откуда идёт считывание данных для занесения в таблицу? какой урок посмотреть?