parniaznet
چهارشنبه 27 اسفند 1393, 22:22 عصر
سلام
وقت همگی بخیر
من یه دیتابیس از پیش آماده دارم با 3 تا تیبل ، ابتدای اجرای برنامه دیتابیس کپی میشه و واسه خوندن یا آپدیت دیتابیس مشکلی ندارم. اما تا حالا insert نکرده بودم چیزی ، الان به کوئری نیاز دارم که مقادیر داده شده رو اینسرت کنه (در تیبل های متفاوت)
ممنون میشم از دوستان اگر یک کوئری مناسب برای من بنویسن
و یک سوال دیگه ، اگه من بخوام تو دیتابیسم فقط یک جدول داشته باشم و وسط برنامه دیتابیس های جدیدی ایجاد کنم امکانش هست؟!با حفظ دیتابیس قبلی البته
کد های کلاس دیتابیس من :
public class database extends SQLiteOpenHelper {
public final String path = "data/data/com.charter.srp/databases/";
public final String Name = "charterdb";
public SQLiteDatabase mydb;
private final Context mycontext;
public database(Context context) {
super(context, "charterdb", 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 Integer sh_categ(String table,String categ, String field){
Cursor Cursor = mydb.rawQuery("SELECT * FROM "+table+" where category='"+categ+"' group by "+field, null);
int i = Cursor.getCount();
return i;
}
public String nam_name(String table,String categ, int row){
Cursor Cursor = mydb.rawQuery("SELECT * FROM "+table+" where category='"+categ+"' group by name", null);
Cursor.moveToPosition(row);
String s = Cursor.getString(2);
return s;
}
public String nam_etelaat(String table, String categ, String name, int field){
Cursor Cursor = mydb.rawQuery("select * from "+table+" where category='"+categ+"' and name='"+name+"'",null);
Cursor.moveToFirst();
String save = Cursor.getString(field);
return save;
}
public String testedb(String table, String email, int field){
Cursor Cursor = mydb.rawQuery("select * from "+table+" where email='"+email+"'",null);
Cursor.moveToFirst();
String save = Cursor.getString(field);
return save;
}
public String namayesh(int row , int field , String table){
android.database.Cursor Cursor = mydb.rawQuery("SELECT * FROM "+table , null);
Cursor.moveToPosition(row);
String str = Cursor.getString(field);
return str;
}
وقت همگی بخیر
من یه دیتابیس از پیش آماده دارم با 3 تا تیبل ، ابتدای اجرای برنامه دیتابیس کپی میشه و واسه خوندن یا آپدیت دیتابیس مشکلی ندارم. اما تا حالا insert نکرده بودم چیزی ، الان به کوئری نیاز دارم که مقادیر داده شده رو اینسرت کنه (در تیبل های متفاوت)
ممنون میشم از دوستان اگر یک کوئری مناسب برای من بنویسن
و یک سوال دیگه ، اگه من بخوام تو دیتابیسم فقط یک جدول داشته باشم و وسط برنامه دیتابیس های جدیدی ایجاد کنم امکانش هست؟!با حفظ دیتابیس قبلی البته
کد های کلاس دیتابیس من :
public class database extends SQLiteOpenHelper {
public final String path = "data/data/com.charter.srp/databases/";
public final String Name = "charterdb";
public SQLiteDatabase mydb;
private final Context mycontext;
public database(Context context) {
super(context, "charterdb", 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 Integer sh_categ(String table,String categ, String field){
Cursor Cursor = mydb.rawQuery("SELECT * FROM "+table+" where category='"+categ+"' group by "+field, null);
int i = Cursor.getCount();
return i;
}
public String nam_name(String table,String categ, int row){
Cursor Cursor = mydb.rawQuery("SELECT * FROM "+table+" where category='"+categ+"' group by name", null);
Cursor.moveToPosition(row);
String s = Cursor.getString(2);
return s;
}
public String nam_etelaat(String table, String categ, String name, int field){
Cursor Cursor = mydb.rawQuery("select * from "+table+" where category='"+categ+"' and name='"+name+"'",null);
Cursor.moveToFirst();
String save = Cursor.getString(field);
return save;
}
public String testedb(String table, String email, int field){
Cursor Cursor = mydb.rawQuery("select * from "+table+" where email='"+email+"'",null);
Cursor.moveToFirst();
String save = Cursor.getString(field);
return save;
}
public String namayesh(int row , int field , String table){
android.database.Cursor Cursor = mydb.rawQuery("SELECT * FROM "+table , null);
Cursor.moveToPosition(row);
String str = Cursor.getString(field);
return str;
}