بنده یک نگاه کلی به کدها انداختم.
ما قبل از کار با پایگاه داده، معمولا کلاس هایی را اجرا می کنیم (ساخت شیء از روی کلاس ها) و بعد از طریق روش های (methods) آنها، عملیات های مورد نظرمان را اجرا خواهیم کرد.
احتمالا مشکل اصلی از این است که در یکی از این کلاس ها یا روش های موجود در آنها، هر بار، کد ساخته شدن Table مورد نظر اجرا می شود (در صورتیکه که این عملیات تنها باید یک بار اجرا شود، یا شرط گذاشته شود که اگر Table وجود نداشت، آنگاه ساخته شود).
این بخش از کدها را دوباره بررسی کنید :
که مربوط به کلاس DatabaseHelper است (روش onCreate هم یعنی به محض ساخت شیء از روی آن کلاس، این کدها اجرا خواهند شد). در این کدها، query مربوط به ساخت Table ذکر شده است. بنابراین این بخش را حذف کنید و ببینید که مشکل برطرف می شود یا خیر.
اگر برطرف نشد، باز هم باید به دنبال اینگونه موارد در کدها باشید. البته کدهایی هم که برای استفاده از این کلاس ها می نویسید، مهم است.
ما قبل از کار با پایگاه داده، معمولا کلاس هایی را اجرا می کنیم (ساخت شیء از روی کلاس ها) و بعد از طریق روش های (methods) آنها، عملیات های مورد نظرمان را اجرا خواهیم کرد.
احتمالا مشکل اصلی از این است که در یکی از این کلاس ها یا روش های موجود در آنها، هر بار، کد ساخته شدن Table مورد نظر اجرا می شود (در صورتیکه که این عملیات تنها باید یک بار اجرا شود، یا شرط گذاشته شود که اگر Table وجود نداشت، آنگاه ساخته شود).
این بخش از کدها را دوباره بررسی کنید :
کد پیاچپی:
@Override
public void onCreate(SQLiteDatabase db) {
try {
db.execSQL(CREATE_TABLE);
} catch (SQLException e) {
e.printStackTrace();
}
}
که مربوط به کلاس DatabaseHelper است (روش onCreate هم یعنی به محض ساخت شیء از روی آن کلاس، این کدها اجرا خواهند شد). در این کدها، query مربوط به ساخت Table ذکر شده است. بنابراین این بخش را حذف کنید و ببینید که مشکل برطرف می شود یا خیر.
اگر برطرف نشد، باز هم باید به دنبال اینگونه موارد در کدها باشید. البته کدهایی هم که برای استفاده از این کلاس ها می نویسید، مهم است.
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.