ممنون مهندس نشد از G.database.exexsql خطا میگیره
بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ
مشکل با آپدیت (خواهشا کمک کنید دیتا بعد از آپدیت شدن با مقدار قبلی باقی میمونه)
مدیریت گفتگو
آخرین تغییر: 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
پاسخها 7
سلام مهندس من آپدیت دیتابیس رو اینجوری می نویسم تست کن شاید مشکلت حل شد !
G.database.execSQL("UPDATE info SET name = " + name + ",family = " + family + ",number = " + number + ",email = " + email + " WHERE id = 1");
نظرات
UPDATE info SET name = '"+ name +"',family = '"+ family +"',number = '"+ +"' ...
نظرات
05-25 17 E/AndroidRuntime(9671): android.database.sqlite.SQLiteException: unrecognized token: "'" (code 1): , while compiling: UPDATE contact SET name = 'رضا',family = 'رضایی',number = '
اینم خطای لاگ پاسخ حاج حسینی عزیز
باید مقادیری که string هستند توی "" باشند یعنی مثلا:
UPDATE contact SET name =" میلاد",family =" احمدی",number =545 WHERE id =2
نظرات
این لاگ رو میده در هر صورت :
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
G.database.execSQL("UPDATE contact SET name = '"+ getname +"',family = '"+ getfamily +"',number = '"
+ getnumber +"' WHERE id = '"+ itemid+"'");
تست کن اینو
راهش اینه که کل دستور SQL رو داخل " " قرار می دیدی . حالا اونجاهایی که رشته ای هستن که همینطوری می نویسی اما تا به یک مقدار رسیدی قرارش بده داخل ' " + Value + " '
نظرات
ممنون مستر جان حل شد اما مقدار رو ذخیزه نمیکنه تو دیتا بیس !!! عجیب شده خدایی
یکی ببین اون id در جدولت null نباشن.
بعد هم از اون کدی که من نوشتم قسمت " ' " + رو از آخرش بردار . یعنی اینطوری میشه آخرش
WHERE id = '"+ itemid...
بازم نشد
شاید چون itemid از نوع عددی هستش و داری داخل یک رشته اونو قرار می دی باید یه جور دیگه بنویسیش اینجا.
اون تک کوتیشن مربوط به itemid رو بردار.
یعنی "+ itemid +" کافیه و دیگه تک کوتیشن ها ' ' را نمی خواد.
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .
ویرایش
پیام
نظرات