انجمن سایت کلیدستان


رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
ذخیره نشدن مقادیر تکراری در دیتابیس (برنامه نویسی اندروید)

ذخیره نشدن مقادیر تکراری در دیتابیس (برنامه نویسی اندروید)

#1
با سلام و خسته نباشید

می خوام وقتی که عملیات insert انجام میشه و فایلی رو که کاربر در دیتابیس ذخیره میکنه واسه بار دوم اجازه ذخیره نده و پیام بده که قبلا این مقدار در دیتابیس ذخیره شده.

عملیات insert به درستی کار می کنه و برنامه از کاربر مقادیر رو میگیره ولی اگه کاربر مقادیر تکراری هم وارد کنه باز ثبت میشه. ممنون میشم راهنمایی کنید.
پاسخ

ذخیره نشدن مقادیر تکراری در دیتابیس (برنامه نویسی اندروید)

#2
سلام.
چه در پایگاه داده SQLite (در برنامه نویسی اندروید) و چه در پایگاه های داده دیگر (مثل MySQL که معمولا در طراحی وب سایت ها به کار می رود)، زمانی که بخواهیم اطلاعاتی را به صورت یک ردیف (row) جدید در جدول (table) ذخیره کنیم، اما با این شرط که قبلا ردیفی مشابه آن در جدول وجود نداشته باشد، می توانیم از دو روش زیر استفاده کنیم :

1- با استفاده از دو query :
ابتدا یک query اجرا می کنیم که در آن از SELECT استفاده شده (تنها برای خواندن از جدول) و مشخصات ردیف هایی که می خواهیم خوانده شوند را برابر همان مشخصاتی که می خواهیم در جدول ثبت کنیم، در query می نویسیم. سپس بر اساس اجرای این query ، تعداد ردیف های برگردانده شده را به دست می آوریم و در یک متغیر ذخیره می کنیم. 
بعد با استفاده از if شرط می گذاریم که اگر مقدار متغیر برابر 0 بود (هیچ ردیفی برگردانده نشده)، آنگاه یک query دیگر برای ((ثبت اطلاعات به صورت یک ردیف جدید در جدول)) اجرا گردد.
برای به دست آوردن تعداد ردیف ها با کدنویسی در اندروید، لینک زیر را ببینید :

http://stackoverflow.com/questions/52022...count-rows

2- با استفاده از تنها یک query :
با استفاده از عبارت NOT EXISTS در query ، تعیین می کنیم که اگر مشابه اطلاعاتی که اکنون داریم ثبت می کنیم، ردیفی وجود نداشت، آنگاه ثبت اطلاعات صورت گیرد.
به عنوان مثال :

http://stackoverflow.com/questions/19337...-in-sqlite

Flower
bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط se7en ، Erfan95 ، شماره مجازی امارات ، تلگرام ضد فیلتر 2023


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان