بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

مشکل با آپدیت (خواهشا کمک کنید دیتا بعد از آپدیت شدن با مقدار قبلی باقی میمونه)

مدیریت گفتگو
underomeda 11 سال پیش
آخرین تغییر: 11 سال پیش

سلام دوستان مشکل این کد  چیه؟ کسی نیست  یعنی سوالش خیلی سخته ما سالی یه بار سوال میکنیم اونمو گیج کننده اس برامون 

 private TextView txtname;
    private TextView txtfamily;
    private TextView txtnumber;
    private EditText edtname;
    private EditText edtfamily;
    private EditText edtnumber;
    private Button   btnupdate;
    private int      itemid;
    private String   name;
    private String   family;
    private String   number;
    private String   getname;
    private String   getfamily;
    private String   getnumber;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.update);
        txtname = (TextView) findViewById(R.id.txt_name);
        txtfamily = (TextView) findViewById(R.id.txt_family);
        txtnumber = (TextView) findViewById(R.id.txt_number);
        edtname = (EditText) findViewById(R.id.edtname);
        edtfamily = (EditText) findViewById(R.id.edtfamily);
        edtnumber = (EditText) findViewById(R.id.edtnumber);
        btnupdate = (Button) findViewById(R.id.btnupdate);
        Bundle extras = getIntent().getExtras();

        if (extras != null) {
            itemid = extras.getInt("ID");
            name = extras.getString("name");
            family = extras.getString("family");
            number = extras.getString("number");
            edtname.setText(name);
            edtfamily.setText(family);
            edtnumber.setText(number);
        }

        getname = edtname.getText().toString();
        getfamily = edtfamily.getText().toString();
        getnumber = edtnumber.getText().toString();
        btnupdate.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                G.database.execSQL("UPDATE contact SET name = " + getname + ",family = " + getfamily + ",number = " 
+ getnumber + " WHERE id = " + itemid); Toast.makeText(G.context, "مخاطب با موفقیت ویرایش شد.", Toast.LENGTH_SHORT).show(); finish(); } }); } @Override protected void onResume() { G.CurrentActivity = this; super.onResume(); }

 

اینم خطای لاگ :

05-25 16:18:16.524: E/AndroidRuntime(16190): android.database.sqlite.SQLiteException: 
no such column: میلاد (code 1): , while compiling: UPDATE contact SET name = میلاد,family = احمدی,number = 545 WHERE id = 2

 

 

نظرات

javac 11 سال پیش
اینجوری که نمیشه جواب داد!! خطای log رو بزار
javac 11 سال پیش
مقادیری که میفرستی رو داخل single کوتیشن بزار به این شکل: 'میلاد' ...... در واقع اونجایی که کوئری رو نوشتی مشکل داره و باید با گذاشتن کوتیشن اصلاحش کنی

پاسخ‌ها 7

یزدانی 11 سال پیش

سلام مهندس من آپدیت دیتابیس رو اینجوری می نویسم تست کن شاید مشکلت حل شد !

 G.database.execSQL("UPDATE info SET name = " + name + ",family = " + family + ",number = " + number + ",email = " + email + " WHERE  id = 1");

نظرات

underomeda 11 سال پیش
ممنون مهندس نشد از G.database.exexsql خطا میگیره
underomeda 11 سال پیش

لطفا کسی نیست کمک کنه؟

نظرات

Hajhosseini 11 سال پیش

 UPDATE info SET name = '"+ name +"',family = '"+ family +"',number = '"+ +"' ... 

نظرات

underomeda 11 سال پیش
05-25 17 E/AndroidRuntime(9671): android.database.sqlite.SQLiteException: unrecognized token: "'" (code 1): , while compiling: UPDATE contact SET name = 'رضا',family = 'رضایی',number = ' اینم خطای لاگ پاسخ حاج حسینی عزیز
underomeda 11 سال پیش

حل نشد کسی نیست واقعا کمک کنه یا تا به حال انجام داده باشه؟

نظرات

ksarafrazi 11 سال پیش

باید مقادیری که string هستند توی "" باشند یعنی مثلا:

UPDATE contact SET name =" میلاد",family =" احمدی",number =545 WHERE  id =2

نظرات

underomeda 11 سال پیش
این لاگ رو میده در هر صورت : 05-25 17 E/AndroidRuntime(22604): android.database.sqlite.SQLiteException: unrecognized token: "'1" (code 1): , while compiling: UPDATE contact SET name = 'رضا',family = 'رضایی',number = '9362997009' where id='1
Master 11 سال پیش

 G.database.execSQL("UPDATE contact SET name = '"+ getname +"',family = '"+ getfamily +"',number = '"
+ getnumber +"' WHERE id = '"+ itemid+"'");

تست کن اینو

راهش اینه که کل دستور SQL رو داخل " " قرار می دیدی . حالا اونجاهایی که رشته ای هستن که همینطوری می نویسی اما تا به یک مقدار رسیدی قرارش بده داخل ' " + Value + " '

 

 

نظرات

underomeda 11 سال پیش
ممنون مستر جان حل شد اما مقدار رو ذخیزه نمیکنه تو دیتا بیس !!! عجیب شده خدایی
Master 11 سال پیش
یکی ببین اون id در جدولت null نباشن. بعد هم از اون کدی که من نوشتم قسمت " ' " + رو از آخرش بردار . یعنی اینطوری میشه آخرش WHERE id = '"+ itemid...
Master 11 سال پیش
شاید چون itemid از نوع عددی هستش و داری داخل یک رشته اونو قرار می دی باید یه جور دیگه بنویسیش اینجا.
Master 11 سال پیش
اون تک کوتیشن مربوط به itemid رو بردار. یعنی "+ itemid +" کافیه و دیگه تک کوتیشن ها ' ' را نمی خواد.
underomeda 11 سال پیش

از این همه کاربر واقعا کسی نیست کمک کنه؟

نظرات


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