PDA

View Full Version : مشکل در افزودن داده به بانک اطلاعاتی



mehran788
دوشنبه 03 فروردین 1394, 22:26 عصر
سلام. خسته نباشید
من این کد رو نوشتم برای اضافه کردن insert کردن داده. رکورد اول رو درست insert می کنه ولی بیشتر از یک رکورد ذخیره نمی کنه. مشکل از چی میتونه باشه؟
ممنون

int code = 0; SQLiteDatabase db = openOrCreateDatabase("mydb", MODE_PRIVATE, null);
Cursor c = db.rawQuery("SELECT * FROM tblcodes", null);
c.moveToFirst();
code = Integer.parseInt(c.getString(c.getColumnIndex("banks")));
//db.execSQL("CREATE TABLE IF NOT EXISTS tblbanks (Code INT(4),AcountName VARCHAR,BankName VARCHAR,Branch VARCHAR,AcountNumber INT(10),CardNumber INT(16),Value INT(20),MinimumValue INT(20));");
db.execSQL("INSERT INTO tblbanks VALUES ('" + code + "','" + txtacountname.getText().toString() + "','" + txtbankname.getText().toString() + "','" + txtbranch.getText().toString() + "','" + txtacountnumber.getText() + "','" + txtcardnumber.getText() + "','" + txtvwmv.getText() + "','" + txtvalue.getText() + "');");
code = code + 1;
db.execSQL("UPDATE tblcodes SET banks='" + code + "'");
Cursor c1 = db.rawQuery("SELECT * FROM tblcodes", null);
c1.moveToFirst();
txtacountname.setText(c1.getString(c1.getColumnInd ex("banks")));
db.close();
c.close();
Toast.makeText(getApplicationContext(), "Add Finished", Toast.LENGTH_SHORT).show();

eai-eiliya
سه شنبه 04 فروردین 1394, 21:09 عصر
چکار کردی ؟!!!!!!!!!!!!!
یک بار select کردی
بعد insert کردی
بعدش دوباره update کردی !!!!
بعد دوباره select کردی :افسرده:

پیشنهاد می کنم برای کار با دیتابیس از این لایبرری استفاده کنید
http://www.activeandroid.com/

mehran788
سه شنبه 04 فروردین 1394, 22:44 عصر
tblcode که یه چیز دیگه اس. اصلش خط 6 هست که کار نمیکنه. فقط یه رکورد ذخیره میکنه ولی ذومی رو ذخیره نمیکنه. حتی جداگانه تو یه پروژه دیگه تنها insert رو نوشتم باز نشد.

eai-eiliya
سه شنبه 04 فروردین 1394, 23:29 عصر
بله درست می فرمایید من به اسم جدول توجه نکردم
اما بازم استفاده از orm اکتیو اندروید رو بهتون پیشنهاد می کنم
شاید در ابتدا کمی سخت به نظر برسه اما بعد در همه پروژه ها سرعت کارتون رو بالا می بره و از کار کردن با دیتابیس لذت می برید :لبخندساده:

mehran788
سه شنبه 04 فروردین 1394, 23:42 عصر
من تازه کارم. به آدرسی که دادین نگاه کردم سرگیجه گرفتم. واسه شروع دنبال راه ساده هستم. مگه خط 6 درست نیست؟ اگه درست نیست چرا همون رکورد اول رو ذخیره می کنه تو اون یکی ها عمل نمیکنه؟

eai-eiliya
چهارشنبه 05 فروردین 1394, 00:11 صبح
3 سوال
1 - جدول هات رو چطور ساختی
2 - code ظاهرا از نوع int هست ، اما به روش string داری توی دیتابیس اضافه می کنی ! توی دیتابیس code رو چی تعریف کردی ؟
3 - به این دقت کردی ؟ txtacountname.getText().toString() و فرقش با این txtvalue.getText() که درستش اولی هست

mehran788
چهارشنبه 05 فروردین 1394, 00:27 صبح
1- جدول هام رو با خط شماره 4 ساختم و بعد تبدیل به کامنت کردم.
2- code تو هر دو تا دیتابیس int هست
3- خب من هم تو insert از نوع اول استفاده کردم دیگه

eai-eiliya
چهارشنبه 05 فروردین 1394, 17:42 عصر
خوب اگه از نوع int هست چرا از '' استفاده کردی !؟

mehran788
چهارشنبه 05 فروردین 1394, 18:57 عصر
اگه منظورت خط شش هست که هر متغیری که بخوای تو دستورات sql استفاده کنی باید بین ' " ++ " ' قرار بدی. چه Int باشه و چه string

eai-eiliya
پنج شنبه 06 فروردین 1394, 00:32 صبح
int نیاز به ' نداره یعنی اینجوری باید بنویسی ("+code+",

mehran788
پنج شنبه 06 فروردین 1394, 13:29 عصر
این کارو هم انجام دادم ولی هنوز حل نشد