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

اجرای دستور insert

afr_msb  9 سال پیش  9 سال پیش
+1 0

سلام

من دیتابیسم را بعد از کپی در فایل asset بدون مشکل استفاده میکنم الان مشکلم دستور insrt و updat و delete من کوئری insert را نوشتم ولی اصلا اجرا نمیشه .

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

در اکتیویتی کوئری insert را نوشتم

         G.database.execSQL("INSERT INTO deliver (deliver_sms) VALUES (2)");

این هم کلاسG

 package mosayebi.afrooz.app.course.sms_test2;

import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import android.app.Activity;
import android.app.Application;
import android.content.Context;
import android.content.res.AssetManager;
import android.database.sqlite.SQLiteDatabase;
import android.os.Environment;
import android.os.Handler;
import android.view.LayoutInflater;


public class G extends Application {

public static Context context;
public static LayoutInflater inflater;
public static final Handler HANDLER = new Handler();
public static Activity currentActivity;

protected static StructApplication SelectedApplicaton;

public static SQLiteDatabase database;
public static final String DIR_SDCARD = Environment.getExternalStorageDirectory().getAbsolutePath();
public static final String DIR_DATABASE = DIR_SDCARD + "/data/android-sms/";


@Override
public void onCreate() {
super.onCreate();
context = getApplicationContext();
inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);

new File(DIR_DATABASE).mkdirs();

manageDatabase();

File file = new File(DIR_DATABASE + "/Smsn.sqlite");

if ( !file.exists()) {
AssetManager assetmanager = context.getAssets();
InputStream inputStream;
try {
inputStream = assetmanager.open("Smsn.sqlite");
HelperIO.copyFile(inputStream, DIR_DATABASE + "/Sms.sqlite");
}
catch (IOException e) {
e.printStackTrace();
}
}
}


private void manageDatabase() {

database = SQLiteDatabase.openOrCreateDatabase(DIR_DATABASE + "/Sms.sqlite", null);

database.execSQL("CREATE TABLE IF NOT EXISTS deliver (" +
"deliver_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL UNIQUE , " +
"deliver_sms INTEGER " +
")");

// database.execSQL("INSERT INTO deliver deliver_sms VALUES ");

// database.execSQL("UPDATE person SET person_name='test' WHERE person_age>7");
}

}

0 0
راستش باید دیتابیس رو هم ببینم تا دقیقا متوجه قضیه بشم. ولی شما بجای VALUES در کوئری از VALUE استفاده کنید. شاید درست بشه (9 سال پیش)
0 0
فکر کنم اگر برای عدد ۲ هم Single Quat قرار بدید درست میشه. مثل '۲' (9 سال پیش)
0 0
الان کرش میکنه انگار اصلا دیتابیسا نمیشناسه (9 سال پیش)
0 0
متن خطاش چیه؟ (9 سال پیش)
0 0
به query insert که میرسه کلا stop میکنه (9 سال پیش)
0 0
متن لاگ کت رو بزارید (9 سال پیش)
0 0
دیتابیس رو از assets به Sd Card کپی کنید و بعد دستورات رو روش انجام بدید. (9 سال پیش)
0 0
کپی کنم تو sdcard که هم دوباره کاریه هم رو sdcard جنی موشنه اینجوری که مشکل ندارم من میخوام هر کس رو گوشیش عملیات اینسرتا راحت انجام بده . یعنی هیچکس همچین پروژه ای نداشته که الان به من کمک کنه ؟ من مشکلم اینه وقتی پایگاها کپی میکنم چرا دیگه اینسرت حواب نمیده و باید چه کار کنم ؟ (9 سال پیش)
+1 0
این روش ایجاد دیتابیس قدیمی شده و برای اندروید های 4.4 به بالا جواب نمیده و کرش می کنه باید یه کلاس مجزا براش بسازی و از این کلاس SQLiteOpenHelper اکستندش کنی به این لینک هم یه نگاه بنداز لینک (9 سال پیش)
0 0
من همچنان مشکلم بدون جواب مونده . مسئله اینجاس که توی جنی موشن بدون مشکل insert انجام میشه ولی وقتی روی گوشی نصب میشه فقط برای باز اول insert انجام میشه . (9 سال پیش)
+1 0
بعضی از نسخه های اندروید که من تجربه کردم مثلا رو گوشی هواوی تو کلاس Application یک سری دستورات اجرا نمیشه ، مثلا ساخت فولدر ، راه اندازی سرویس پارسه و چند نمونه از کارهای دیگه باید تست کنید ببینید کدوم ها توی کلاس Application اجرا نمیشن ، کاری که من کردم این بود که کدهارو به اکتیوتی Splash انتقال دادم و مشکل حل شد ، احتمالا اینکه دارید میگید روی جنی موشن کار میکنه ولی روی گوشی مشکل داره میتونه همین باشه ، پیشنهاد میکنم متد manageDatabase رو درون یک کلاس جداگانه قرار بدید و یا اگر زیاد استفاده نمیشه ببرید توی اکتیوتی که مورد نیاز هست استفاده کنید (9 سال پیش)
0 0
باید ('2') این طوری بنویسی و اینکه بازم میگم من قبلا با این روش شما کار کردم در گوشی های مختلف و با اندروید 4.4 به بالا به مشکل خوردم به نظرم به لینکی دادم یه نگاه بندازین (9 سال پیش)
 برای این سوال پاسخی وجود ندارد.

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