آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

مشکل در باز کردن دیتابیس در برخی ورژنهای اندروید

حمید  10 سال پیش  10 سال پیش
0 0

سلام دوستان

من برنامه ای ساختم که اطلاعاتش رو از روی دیتا بیس میخونه.

خود من این برنامه رو روی 5-6 مدل گوشی تست کردم و روی امولاتور جنی موشن هم بدون هیچی مشکلی کار میکرد.(ورژن اندروید همه اینها بالای 4 بود.)

برنامه رو که برای بازار ارسال کردم به من گفتن برنامم پس از زدن یه سری دکمه خاص کرش میکنه.و این دکمه ها دقیقا همونهایی هستند ارتباط برنامه با دیتا بیس رو برقرار میکنند.

میخواستم بدونم چه تفاوتی بین ورژنهای مختلف اندروید هستش که باعث میشه این اتفاق بیافته .

کسی میتونه کمکی به من بکنه ؟؟

0 0
برای ارتباط با دیتابیس از چه کدی استفاده کردید؟ متن کرش رو هم می گرفتید. (10 سال پیش)
 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
حمید  10 سال پیش
0 0

 package com.sample.myapp;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import android.content.Context;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;


public class DataBaseOpen extends SQLiteOpenHelper {

public final String path = "/data/data/com.sample.myapp/databases/";
public final String Name = "picture16.db";
public SQLiteDatabase mydb;
private final Context mycontext;


public DataBaseOpen(Context context) {
super(context, "picture16.db", null, 1);
mycontext = context;
}


@Override
public void onCreate(SQLiteDatabase arg0) {

}


@Override
public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {

}


public void useable() {
boolean checkdb = checkdb();
if (checkdb) {

} else {
this.getReadableDatabase();
try {
copydatabase();
}
catch (IOException e) {

}
}
}


public void open() {
mydb = SQLiteDatabase.openDatabase(path + Name, null, SQLiteDatabase.OPEN_READWRITE);
}


@Override
public void close() {
mydb.close();
}


public boolean checkdb() {
SQLiteDatabase db = null;
try {
db = SQLiteDatabase.openDatabase(path + Name, null, SQLiteDatabase.OPEN_READONLY);
}
catch (SQLException e) {

}
return db != null ? true : false;
}


public void copydatabase() throws IOException {

OutputStream myOutput = new FileOutputStream(path + Name);
byte[] buffer = new byte[1024];
int lenght;
InputStream myInput = mycontext.getAssets().open(Name);
while ((lenght = myInput.read(buffer)) > 0) {
myOutput.write(buffer, 0, lenght);
}
myInput.close();
myOutput.flush();
myOutput.close();
}




public String show(int row, int field, String table) {

android.database.Cursor Cursor = mydb.rawQuery("SELECT * FROM " + table, null);
Cursor.moveToPosition(row);
String str = Cursor.getString(field);
Cursor.close();
return str;
}


public int chekFav(int row, int StarField, String table) {

android.database.Cursor Cursor = mydb.rawQuery("SELECT * FROM " + table, null);
Cursor.moveToPosition(row);
int fav = Cursor.getInt(StarField);
Cursor.close();
return fav;
}


public int callGroup(int row, int Group, String table) {

android.database.Cursor Cursor = mydb.rawQuery("SELECT * FROM " + table, null);
Cursor.moveToPosition(row);
int group = Cursor.getInt(Group);
Cursor.close();
return group;
}


public int findNumber(String word) {
//Cursor cursor;
android.database.Cursor cursor = mydb.rawQuery("select * from BookTable where Matn like '%" + word + "%'", null);
int fildNumber = cursor.getCount();
//cursor.close();
return fildNumber;
}


public int search(int row, String word) {
android.database.Cursor cursor = mydb.rawQuery("select * from BookTable where Matn like '%" + word + "%'", null);
cursor.moveToPosition(row);
int idOfserched = cursor.getInt(0);
//cursor.close();
return idOfserched;

}


public void StarOn(int icon) {
mydb.execSQL("UPDATE BookTable SET star =1 WHERE id= " + icon);
}


public void StarOff(int icon) {
mydb.execSQL("UPDATE BookTable SET star =0 WHERE id= " + icon);
}
}
0 0
اینم متن کد کلاسی که من برای ارتباط با دیتا بیس استفاده میکنم. (10 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .