-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
من که دیگه موندم والا !!
دیتابیسش سادست و چیزی نداره ، اگه لطف کنید یه نگاهی بهش بندازید ممنون میشم
http://s5.picofile.com/file/81528465...ry_db.zip.html
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
من دیتابیستون رو دیدم، کوئری ها داره درست عمل میکنه
چیزی که الان به ذهنم رسید اینه که شرط هاتون توی توابع درست عمل نمیکنه و همیشه شرط else داره اجرا میشه
کلا نمیدونم چرا توی مقایسه دو رشته توی اندروید این مشکل پیش میاد، شرط field.equals("name") به احتمال زیاد اجرا نمیشه
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
نقل قول:
نوشته شده توسط
poorman
من دیتابیستون رو دیدم، کوئری ها داره درست عمل میکنه
چیزی که الان به ذهنم رسید اینه که شرط هاتون توی توابع درست عمل نمیکنه و همیشه شرط else داره اجرا میشه
کلا نمیدونم چرا توی مقایسه دو رشته توی اندروید این مشکل پیش میاد، شرط field.equals("name") به احتمال زیاد اجرا نمیشه
نه ، اگه field.equals("name")
اجرا نمیشد که چیزی نشون نمیداد اصلا ، چون دوتا RadioButton دارم که یکی جستجو بر اساس name یکی جستجو بر اساس matn ، در field.equals("name")
هنگامی رخ میده که ستون name باشه ، چون اجرا میشه یه چیزایی تو لیست ویو میاد ولی group by هستش که فیلتر بر اساس name رو انجام نمیده و همه رو میاره !!
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
public String jostojoo(int row,int col,String word,String feild){
mydata=mydb.getReadableDatabase();
Cursor cu;
if(feild.equals("name")){
cu=mydata.rawQuery("select * from tbl where "+feild+" Like '%"+word+"%'group by name", null);
}else{
cu=mydata.rawQuery("select * from tbl where "+feild+" Like '%"+word+"%'", null);
}
cu.moveToPosition(row);
String save=cu.getString(col);
return save;
}
public Integer shomaresh_jostojoo(String word,String feild){
mydata=mydb.getReadableDatabase();
Cursor cu;
if(feild.equals("name")){
cu=mydata.rawQuery("select * from tbl where "+feild+" Like '%"+word+"%'group by name", null);
}else{
cu=mydata.rawQuery("select * from tbl where "+feild+" Like '%"+word+"%'", null);
}
int save=cu.getCount();
mydb.close();
return save;
}
[/QUOTE]
ببینید شما وقتی میخواین جستجو کنین این توابع رو فراخوانی میکنید دیگه درسته؟
حالا توی این توابع یک شرط دارید، اگر برقرار باشه group by میشه، اگر برقرار نباشه group by نمیشه
من میگم شرط شما برقرار نیست که این اتفاق میفته
به نظرم همیشه شرط else اتفاق میفته
میتونید با یک log کردن ساده بفهمید که تابع داره وارد کدوم شرط میشه
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
نقل قول:
نوشته شده توسط
poorman
public String jostojoo(int row,int col,String word,String feild){
mydata=mydb.getReadableDatabase();
Cursor cu;
if(feild.equals("name")){
cu=mydata.rawQuery("select * from tbl where "+feild+" Like '%"+word+"%'group by name", null);
}else{
cu=mydata.rawQuery("select * from tbl where "+feild+" Like '%"+word+"%'", null);
}
cu.moveToPosition(row);
String save=cu.getString(col);
return save;
}
public Integer shomaresh_jostojoo(String word,String feild){
mydata=mydb.getReadableDatabase();
Cursor cu;
if(feild.equals("name")){
cu=mydata.rawQuery("select * from tbl where "+feild+" Like '%"+word+"%'group by name", null);
}else{
cu=mydata.rawQuery("select * from tbl where "+feild+" Like '%"+word+"%'", null);
}
int save=cu.getCount();
mydb.close();
return save;
}
ببینید شما وقتی میخواین جستجو کنین این توابع رو فراخوانی میکنید دیگه درسته؟
حالا توی این توابع یک شرط دارید، اگر برقرار باشه group by میشه، اگر برقرار نباشه group by نمیشه
من میگم شرط شما برقرار نیست که این اتفاق میفته
به نظرم همیشه شرط else اتفاق میفته
میتونید با یک log کردن ساده بفهمید که تابع داره وارد کدوم شرط میشه[/QUOTE]
دو تا RadioButton دارم که نوع جستجو رو انتخاب میکنم
دستور جستجو رو شرطش رو اینجوری هم مینویسم بازم تغییری نمیکنه و همونجوری میشه
public String jostojoo(int row,int col,String word,String feild){
mydata=mydb.getReadableDatabase();
Cursor cu;
String save;
//if(feild.equals("name")){
if( rb_story_name.isChecked()){
cu=mydata.rawQuery("select * from tbl where "+feild+" Like '%"+word+"%'group by name", null);
}else {
cu=mydata.rawQuery("select * from tbl where "+feild+" Like '%"+word+"%'", null);
}
cu.moveToPosition(row);
save=cu.getString(col);
return save;
}
نقل قول:
حالا توی این توابع یک شرط دارید، اگر برقرار باشه group by میشه، اگر برقرار نباشه group by نمیشه
من میگم شرط شما برقرار نیست که این اتفاق میفته
یعنی if(feild.equals("name"))
انجام نمیشه ؟؟؟
خب تو دستورات زیر که تو پست های قبل هم نوشته بودم :
private void refresher(String text1,String feild){
mydata=mydb.getReadableDatabase();
int save=shomaresh_jostojoo(text1, feild);
if(txt.getText().toString().equals("")){
save=0;
status.setText("لطفا متن مورد نظر خود را وارد نمایید");
}else{
status.setText("تعداد "+save+" مورد یافت شد");
}
NAME=new String[save];
FASL=new String[save];
page=new String[save];
cpage=new String[save];
for(int i=0;i<save;i++){
NAME[i]=jostojoo(i, 1, text1, feild);
FASL[i]=jostojoo(i, 5, text1, feild);
Cursor tedad=mydata.rawQuery("select * from tbl where name='"+NAME[i]+"'order by id", null);
cpage[i]=tedad.getCount()+"";
if (feild.equals("name")) {
page[i]="";
}else{
page[i]="-->"+jostojoo(i,3,text1, feild);
}
}
setListAdapter(new MyAdapterSearch(this, NAME, FASL,page));
mydb.close();
}
شرط
if (feild.equals("name")) {
page[i]="";
}else{
page[i]="-->"+jostojoo(i,3,text1, feild);
}
اجرا میشه که تو لیست ویوم وقتی بر اساس name هستش شماره صفحه خالی میزاره
:عصبانی++::عصبانی++::عصبانی++:: صبانی++::عصبانی++::عصبانی++:
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
سلام
- فایل Jar را متاسفانه نتوانست دانلود کنم اگر امکانش هست بصورت فشرده در جایی دیگر قرار دهید.
- کلاس Mydatabase در کجا باید ایجاد شود؟
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
سلام
10 تا record در دیتابیس دارم.
در برنامه یه دکمه قرار دادم که هر بار با زدن دکمه record بعدی نمایش داده میشه
وقتی به record دهم میرسه با زدن دکمه برنامه کرش میشه چون record ها به پایان رسیده است
Index 10 requested, with a size of 10
سوال اینه که چطور مینم از این کرش شدن برنامه جلوگیری کنم ؟ (مثلا یه پیام نشون بدم که دیتابیس تمام شده)
با تشکر و احترام
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
نقل قول:
سلام
10 تا record در دیتابیس دارم.
در برنامه یه دکمه قرار دادم که هر بار با زدن دکمه record بعدی نمایش داده میشه
وقتی به record دهم میرسه با زدن دکمه برنامه کرش میشه چون record ها به پایان رسیده است
Index 10 requested, with a size of 10
سوال اینه که چطور مینم از این کرش شدن برنامه جلوگیری کنم ؟ (مثلا یه پیام نشون بدم که دیتابیس تمام شده)
با تشکر و احترام
سلام
اول از همه با اجازه از اساتید و دوستان
ساده ترین راه ممکن به نظر من این که با استفاده از try ...catch ارور به به دام بندازید و با در قسمت Catch از کویری
SELECT * FROM TableName order by column DESC LIMIT 1
برای رفتن به اخرین رکودر ذخیره شده استفاده کن.
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
نقل قول:
نوشته شده توسط
hamedjj
سلام
10 تا record در دیتابیس دارم.
در برنامه یه دکمه قرار دادم که هر بار با زدن دکمه record بعدی نمایش داده میشه
وقتی به record دهم میرسه با زدن دکمه برنامه کرش میشه چون record ها به پایان رسیده است
Index 10 requested, with a size of 10
سوال اینه که چطور مینم از این کرش شدن برنامه جلوگیری کنم ؟ (مثلا یه پیام نشون بدم که دیتابیس تمام شده)
با تشکر و احترام
سلام حامد جان
اگر فقط بخوای خطا نگیری کاری که دوست عزیزمون commander گفت مناسب هست
اما اگر بخوای شرایط رو کنترل کنی
به نظر من بهتره اول تعداد سطرهای داخل دیتابیس رو بگیری و یه جا ذخیره کنی
با کوئری زیر میشه تعداد رو گرفت
Cursor c = mydb.rawQuery("select count(*) from table", null);
مهم همون count(*) هست که تعداد رو برمیگردونه
بعدش دیگه دست خودته چطوری ازش استفاده کنی
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
نقل قول:
نوشته شده توسط
weblox
سلام
- فایل Jar را متاسفانه نتوانست دانلود کنم اگر امکانش هست بصورت فشرده در جایی دیگر قرار دهید.
- کلاس Mydatabase در کجا باید ایجاد شود؟
سلام
فایل دوباره آپلود شد
کلاس MyDatabase رو همونجایی که بقیه اکتیویتی هاتون هستن بسازید به عنوان یک کلاس جدا
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
سلام من یه دیتابیس دارم برای پروژه کتاب هست . پروژه رو از اینترنت دانلود کردم . حالا میخوام این دیتابیس کلا چه بخش جستجو و علاقه مندی و نمایش رکورد ها محدود به 10 عدد بشه . میشه برام تغییرش بدید بلد نیستم:ناراحت:
package com.example.book;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class database extends SQLiteOpenHelper {
public final String path="data/data/com.example.book/databases/";
public final String Name="database";
public SQLiteDatabase mydb;
private final Context mycontext;
public database(Context context) {
super(context, "database", null, 1);
mycontext=context;
}
@Override
public void onCreate(SQLiteDatabase arg0) {
// TODO Auto-generated method stub
}
@Override
public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
// TODO Auto-generated method stub
}
public void useable(){
boolean checkdb=checkdb();
if(checkdb){
}else{
this.getReadableDatabase();
try{
copydatabase();
}catch(IOException e){
}
}
}
public void open(){
mydb=SQLiteDatabase.openDatabase(path+Name, null, SQLiteDatabase.OPEN_READWRITE);
}
public void close(){
mydb.close();
}
public boolean checkdb(){
SQLiteDatabase db=null;
try{
db=SQLiteDatabase.openDatabase(path+Name, null, SQLiteDatabase.OPEN_READONLY);
}
catch(SQLException e)
{
}
//mydb.close();
return db !=null ? true:false ;
}
public void copydatabase() throws IOException{
OutputStream myOutput = new FileOutputStream(path+Name);
byte[] buffer = new byte[1024];
int length;
InputStream myInput = mycontext.getAssets().open(Name);
while ((length = myInput.read(buffer)) > 0) {
myOutput.write(buffer, 0, length);
}
myInput.close();
myOutput.flush();
myOutput.close();
}
public String Display(int row,int field,String table){
int limit = 10;
Cursor cu=mydb.rawQuery("select * from "+table, null);
cu.moveToPosition(row);
String s=cu.getString(field);
return s;
}
public Integer count(String table,String field){
Cursor cu=mydb.rawQuery("select * from "+table+" group by "+field, null);
int s=cu.getCount();
return s;
}
public String Season_display(String table,int row){
Cursor cu=mydb.rawQuery("select * from "+table+" group by Seasone", null);
cu.moveToPosition(row);
String s=cu.getString(4);
return s;
}
public Integer Story_count(String table,String sea){
Cursor cu=mydb.rawQuery("select * from "+table+" where Seasone='"+sea+"' group by Name", null);
int s=cu.getCount();
return s;
}
public String Story_display(String table,int row,String sea, int field){
Cursor cu=mydb.rawQuery("select * from "+table+" where Seasone='"+sea+"' group by Name", null);
cu.moveToPosition(row);
String s=cu.getString(field);
return s;
}
public Integer Story_page_count(String table,String sea,String story){
Cursor cu=mydb.rawQuery("select * from "+table+" where Seasone='"+sea+"' and Name='"+story+"'", null);
int s=cu.getCount();
return s;
}
public String main_display(String table,String sea,String name,String page){
Cursor cu=mydb.rawQuery("select * from "+table+" where Seasone='"+sea+"' and Name='"+name+"' and Page="+page, null);
cu.moveToFirst();
String s=cu.getString(2);
return s;
}
public void fav_update(String table,String sea, String name,String v){
ContentValues cv=new ContentValues();
cv.put("Fav", v);
mydb.update(table, cv, "Seasone='"+sea+"' and Name='"+name+"'", null);
}
public Integer fav_count(String table){
Cursor cu=mydb.rawQuery("select * from "+table+" where Fav=1 group by Name", null);
int s=cu.getCount();
return s;
}
public String fav_display(String table,int row,int field){
Cursor cu=mydb.rawQuery("select * from "+table+" where Fav=1 group by Name", null);
cu.moveToPosition(row);
String s=cu.getString(field);
return s;
}
public Integer count_serach(String word,String field){
Cursor cu;
if(field.equals("Name")){
cu=mydb.rawQuery("select * from content where "+field+" Like '%"+word+"%' group by Name", null);
}else{
cu=mydb.rawQuery("select * from content where "+field+" Like '%"+word+"%'", null);
}
int s=cu.getCount();
return s;
}
public String serach(int row,int col,String word,String field){
Cursor cu;
if(field.equals("Name")){
cu=mydb.rawQuery("select * from content where "+field+" Like '%"+word+"%' group by Name", null);
}else{
cu=mydb.rawQuery("select * from content where "+field+" Like '%"+word+"%'", null);
}
cu.moveToPosition(row);
String s=cu.getString(col);
return s;
}
public Integer all_story_count(String table){
Cursor cu=mydb.rawQuery("select * from "+table+" group by Name", null);
int s=cu.getCount();
return s;
}
public String all_story_display(String table,int row,int field){
Cursor cu=mydb.rawQuery("select * from "+table+" group by Name order by ID", null);
cu.moveToPosition(row);
String s=cu.getString(field);
return s;
}
}
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
نقل قول:
نوشته شده توسط
ehsanh22
سلام من یه دیتابیس دارم برای پروژه کتاب هست . پروژه رو از اینترنت دانلود کردم . حالا میخوام این دیتابیس کلا چه بخش جستجو و علاقه مندی و نمایش رکورد ها محدود به 10 عدد بشه . میشه برام تغییرش بدید بلد نیستم:ناراحت:
سلام
کدهایی که گذاشتید مال کل کلاس دیتابیس هست، برای کاری که میخواید بکنید باید ساختار پروژه کامل مشخص بشه
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
نقل قول:
نوشته شده توسط
poorman
سلام
کدهایی که گذاشتید مال کل کلاس دیتابیس هست، برای کاری که میخواید بکنید باید ساختار پروژه کامل مشخص بشه
سلام لینک پروژه رو براتون فرستادم ممنون
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
می بخشید یه سوال خیلی آماتوری :
مشکل چی هست در این کد؟
http://upload7.ir/imgs/2014-12/90349923479741471659.gif
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
سلام
شما متغیر mydb رو قبلش تعریف نکردید دوست عزیز
SQLiteDatabase mydb;
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
چرا نرم افزار DB Browser for SQLite خروجی دیتابیس را .sql میده نه .db ؟
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
نقل قول:
نوشته شده توسط
weblox
چرا نرم افزار DB Browser for SQLite خروجی دیتابیس را .sql میده نه .db ؟
فرمت فایل مهم نیست میتوانید بصورت دستی به .db یا .mp3 و ... تغییر دهید
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
مشکل این کد چی هست که برنامه با ارور اجرا میشه؟
یک مقدار را می خوام از یک فیلد جدول بگیرم و در textview بریزم.
http://upload7.ir/imgs/2014-12/83409522783585105688.gif
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
'(' رو از انتهای Query بردار حل میشه
اشتباه درج شده خطامیده
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
نقل قول:
نوشته شده توسط
saeed_g21
'(' رو از انتهای Query بردار حل میشه
اشتباه درج شده خطامیده
متاسفانه باز هم ارور های زیر را در یافت کردم و برنامه بسته شد.
http://upload7.ir/imgs/2014-12/36885649611009248748.gif
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
قبلی هم یک خطا بود چون لاگ رو نداده بودین این خطا مشخص نبود برا همین
ببین دیتابیست رو نمیتونه باز کنه برا همین
کدهای MyDatabase.java ت رو بده
-
1 ضمیمه
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
نقل قول:
نوشته شده توسط
saeed_g21
قبلی هم یک خطا بود چون لاگ رو نداده بودین این خطا مشخص نبود برا همین
ببین دیتابیست رو نمیتونه باز کنه برا همین
کدهای MyDatabase.java ت رو بده
اینم از کد های کلاس دیتابیس:
http://upload7.ir/imgs/2014-12/15552619168251745903.gif
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
دوست عزیز فایل دیتابیس باید توی پوشه assets و توی پوشه databases باشه
به کوچکی و بزرگی حروف اسم پوشه ها هم توجه کنید
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
سلام
از این دیتابیس چه طوری میشه مثلا واسه یه بانک مطلبی استفاده کرد؟
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
نقل قول:
نوشته شده توسط
roboman78
سلام
از این دیتابیس چه طوری میشه مثلا واسه یه بانک مطلبی استفاده کرد؟
سلام
سوالتون رو دقیق متوجه نشدم
بانک اطلاعات متلب منظورتون هست؟
میخواین دیتابیس متلب رو بیارید اینجا یا دیتابیس اینجا رو ببرید متلب؟
توی متلب از چه دیتابیسی استفاده میکنید؟
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
نقل قول:
نوشته شده توسط
poorman
سلام
سوالتون رو دقیق متوجه نشدم
بانک اطلاعات متلب منظورتون هست؟
میخواین دیتابیس متلب رو بیارید اینجا یا دیتابیس اینجا رو ببرید متلب؟
توی متلب از چه دیتابیسی استفاده میکنید؟
نه منظورم از مطلب یعنی جک داستان و اینا
حالا اینارو چه طوری میشه توی این دیتابیس قرار داد
:لبخندساده:
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
نقل قول:
نوشته شده توسط
roboman78
نه منظورم از مطلب یعنی جک داستان و اینا
حالا اینارو چه طوری میشه توی این دیتابیس قرار داد
:لبخندساده:
برای درست کردن دیتابیس جوک یا داستان هیچ تفاوتی وجود نداره
مثلا برای دیتابیس پیامک شما به چند ستون توی جدول نیاز دارید
ستون آیدی، ستون دسته بندی و ستون متن پیامک
یا برای ذخیره داستان
ستون آیدی، ستون فصل، ستون قسمت و ستون داستان
محدودیتی برای ذخیره متن ندارید، میتونید متن های بلند رو هم ذخیره کنید اما برای داستان بهتره متن ها رو تکه تکه کنید تا نمایشتون صفحه ای باشه
به هرحال معماری دیتابیس شما بستگی داره به نیاز شما و اینکه چطوری میخواین ازش استفاده کنید
نمایش اطلاعات هم هیچ فرقی نداره، کوئری مینویسید و اطلاعات برگشتی رو نمایش میدید
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
پس یعنی باید دیتابیسو از یه برنامه مثل sql expert بسازم؟ یا همین تو هم میشه متون رو کپی کرد؟
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
آقا ما یه دیتابیس sqlite داریم
چه جوری به لیست ویو خودمون حالی کنیم که مثلا آقا شما فقط بیا ردیف های مثلا ۱ و ۳و ۷ و ۸ جدول رو بگیرو و نشون بده و و با باقی ردیف ها کار نداشته باش؟
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
نقل قول:
نوشته شده توسط
roboman78
پس یعنی باید دیتابیسو از یه برنامه مثل sql expert بسازم؟ یا همین تو هم میشه متون رو کپی کرد؟
با برنامه ای که معرفی کردم توی پست کار با دیتابیس آماده کار کنید
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
نقل قول:
نوشته شده توسط
Apriliyaa
آقا ما یه دیتابیس sqlite داریم
چه جوری به لیست ویو خودمون حالی کنیم که مثلا آقا شما فقط بیا ردیف های مثلا ۱ و ۳و ۷ و ۸ جدول رو بگیرو و نشون بده و و با باقی ردیف ها کار نداشته باش؟
سلام
شما باید اینکار رو با کوئری انجام بدید، یعنی برای کوئری تون شرط بذارید
بگید جایی که آیدی برابر 1 یا 3 یا 7 یا 8 هست رو برگردونه
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
نقل قول:
نوشته شده توسط
poorman
سلام
شما باید اینکار رو با کوئری انجام بدید، یعنی برای کوئری تون شرط بذارید
بگید جایی که آیدی برابر 1 یا 3 یا 7 یا 8 هست رو برگردونه
یک مثال در این زمینه می زنید
یا کدهاشو قرار می دید؟
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
نقل قول:
نوشته شده توسط
Apriliyaa
یک مثال در این زمینه می زنید
یا کدهاشو قرار می دید؟
Cursor c = mydb.rawQuery("select * from table where id = 1 or id = 3 or id = 7", null);
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
سلام
از اون جایی که sqlite asset helper تو صفحه اصلیش فقط آموزش برای eclipse داده؛ برای استفاده از "دیتابیس آماده SQLit" (لایبرری) در android studio 1.0 باید چی کار کرد؟
چون پوشه های android studio 1.0 فرق میکنه، مثلا پوشه libs نداره که بخوایم database رو اونجا بزاریم.
باید از ابزار دیگه ای استفاده کنیم؟ آموزش دیگه ای داره؟
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
نقل قول:
نوشته شده توسط
Lulzsec
سلام
از اون جایی که sqlite asset helper تو صفحه اصلیش فقط آموزش برای eclipse داده؛ برای استفاده از "دیتابیس آماده SQLit" (لایبرری) در android studio 1.0 باید چی کار کرد؟
چون پوشه های android studio 1.0 فرق میکنه، مثلا پوشه libs نداره که بخوایم database رو اونجا بزاریم.
باید از ابزار دیگه ای استفاده کنیم؟ آموزش دیگه ای داره؟
سلام
بنده چون هنوز با اندروید استودیو کار نکردم اطلاعی در این زمینه ندارم
به نظرم هنوز زوده برای سوئیچ کردن روی اندروید استودیو، ولی خب کاریه که بالاخره باید انجامش بدیم
چنانچه کار کردم حتما آموزشش رو قرار میدم
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
نقل قول:
نوشته شده توسط
Lulzsec
سلام
از اون جایی که sqlite asset helper تو صفحه اصلیش فقط آموزش برای eclipse داده؛ برای استفاده از "دیتابیس آماده SQLit" (لایبرری) در android studio 1.0 باید چی کار کرد؟
چون پوشه های android studio 1.0 فرق میکنه، مثلا پوشه libs نداره که بخوایم database رو اونجا بزاریم.
باید از ابزار دیگه ای استفاده کنیم؟ آموزش دیگه ای داره؟
سلام
این که خیلی آسونتره ، اگر دقت کنید نوشته چجوری به پروژتون اضافه کنید > لینک ، فایل build.gradle رو باز کنید و خطی که نوشته رو بهش اضافه کنید، حالا اون بالا یه نوار زرد رنگ میاد که انتهای نوار نوشته Sync Now با انتخابش کتابخونه از اینترنت دانلود و به پروژه اضافه میشه و میتونید استفاده کنید، البته برای پروژه های بعدی به نظر نیاز به اینترنت هم نیست.
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
نقل قول:
نوشته شده توسط
#root#
سلام
این که خیلی آسونتره ، اگر دقت کنید نوشته چجوری به پروژتون اضافه کنید >
لینک ، فایل build.gradle رو باز کنید و خطی که نوشته رو بهش اضافه کنید، حالا اون بالا یه نوار زرد رنگ میاد که انتهای نوار نوشته Sync Now با انتخابش کتابخونه از اینترنت دانلود و به پروژه اضافه میشه و میتونید استفاده کنید، البته برای پروژه های بعدی به نظر نیاز به اینترنت هم نیست.
خیلی خب حالا اومدیم تا اینجای کار این مراحل رو انجام دادیم،حالا چند تا سوال:
1. database خودمون رو کجا بزاریم؟
2. یه سری قوانین بود مثل، zip کردن database خودمون و ... ؛ در مورد اونا باید چی کار کرد؟
3. مثلا گفته بودن یه پوشه assets بسازین یا یه پوشه database بعد db تون را در اون قرار بدید، در مورد اینا چی؟
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
دوستان این main منه :
package ir.apriliyaa.book;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.List;
import ir.esfandune.database.DBAdapter;
import ir.esfandune.database.apy;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.ListView;
import android.app.ListActivity;
import android.content.Intent;
public class Main extends ListActivity {
DBAdapter db;
List<apy> apyha;
ListView lst;
boolean isAll;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn_about = (Button) findViewById(R.id.main_about);
ImageButton btn_sett = (ImageButton) findViewById(R.id.main_setting);
isAll =true;
lst = getListView();
db = new DBAdapter(getBaseContext());
db.open();
Log.i(DBAdapter.TAG, "3");
apyha = db.getAllContacts();
Log.i(DBAdapter.TAG, "4");
if (apyha.size() == 0) {
String destPath = "/data/data/" + getPackageName() + "/databases";
try {
CopyDB(getBaseContext().getAssets().open("mydb"),
new FileOutputStream(destPath + "/apyha"));
Log.i(DBAdapter.TAG, "db copy shod");
apyha = db.getAllContacts();
refreshDisplay();
Log.i(DBAdapter.TAG, apyha.size() + "= tedad apyha");
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} else {
refreshDisplay();
}
{
btn_about.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Intent next = new Intent(getBaseContext(), About.class);
startActivity(next);
}
});
btn_sett.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Intent next = new Intent(getBaseContext(), Setting.class);
startActivity(next);
}
});
}
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
// TODO Auto-generated method stub
super.onListItemClick(l, v, position, id);
apy apy = apyha.get(position);
Intent next = new Intent(this, ShowData.class);
next.putExtra("thisapy", apy);
startActivity(next);
}
public void CopyDB(InputStream inputStream, OutputStream outputStream)
throws IOException {
byte[] buffer = new byte[1024];
int length;
while ((length = inputStream.read(buffer)) > 0) {
outputStream.write(buffer, 0, length);
}
inputStream.close();
outputStream.close();
}
public void refreshDisplay() {
Log.i(DBAdapter.TAG, apyha.size() + "= tedad apyha");
ArrayAdapter<apy> adapter = new apyAdapter(this, apyha);
setListAdapter(adapter);
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
if (isAll) {
apyha = db.getAllContacts();
}else {
apyha=db.findFAVContacts();
}
refreshDisplay();
}
}
مشکل اینجاست که میاد و از دیتابیس می خونه و هر چی هست تو لیست ویو نشون میده !
اما من می خوام مثلا جوری تنظیم بشه که از تیبل ما فقط ستون های 2 و 3 و 4 و 6 رو بخونه
چی کار باید بکنم؟
منو کلافه کرده !
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
دوست عزیز، من فکر میکنم شما آشنایی لازم با دیتابیس رو ندارید
شما توی main هیچ کدی برای خوندن از دیتابیس ندارید و فقط دارید یک تابع رو صدا میزنید
apyha = db.getAllContacts();
این تابع از اسمش معلومه که داره تمام کانتکت ها رو برمیگردونه، توقع معجزه که ندارید، دارید؟
باید کدهای داخل این تابع رو تغییر بدید دوست عزیز
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
سلام دوستان
مرسی از راهنمایی های عالی همه
من یه سوال دارم، ببینید ما یه اپلیکیشن میسازیم توشم از دیتابیس استفاده میکنیم خیلی عالی. مشکل من این هست که وقتی برنامه روی یه گوشی جدید نصب میشه دیتابیس خام روی اون گوشی نصب میشه، یه راهکاری وجود داره که نرم افزار با اطلاعات درون دیتابیسش روی گوشی موردنظر نصب بشه؟
آیا باید تمام اطلاعات دیتابیس رو بوسیه کد sql و insert ، توی کدمون وارد کنیم؟ یا میشه یه دیتابیس بسازیم بگیم آقای نرم افزار محترم، پس از نصب برنامه این هم دیتابیست هست که این اطلاعات هم توشه حالا ازش استفاده کن توی نرم افزار
ممنون از پاسخگوییتون
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
نقل قول:
نوشته شده توسط
m_jafari_1370
سلام دوستان
مرسی از راهنمایی های عالی همه
من یه سوال دارم، ببینید ما یه اپلیکیشن میسازیم توشم از دیتابیس استفاده میکنیم خیلی عالی. مشکل من این هست که وقتی برنامه روی یه گوشی جدید نصب میشه دیتابیس خام روی اون گوشی نصب میشه، یه راهکاری وجود داره که نرم افزار با اطلاعات درون دیتابیسش روی گوشی موردنظر نصب بشه؟
آیا باید تمام اطلاعات دیتابیس رو بوسیه کد sql و insert ، توی کدمون وارد کنیم؟ یا میشه یه دیتابیس بسازیم بگیم آقای نرم افزار محترم، پس از نصب برنامه این هم دیتابیست هست که این اطلاعات هم توشه حالا ازش استفاده کن توی نرم افزار
ممنون از پاسخگوییتون
با سلام
دوست عزیز برای اینکه اطلاعات رو از قبل توی دیتابیس بریزید، صفحه اول همین تاپیک، آموزش دیتابیس آماده رو مطالعه کنید
میشه دیتابیس رو با تمام اطلاعاتش از قبل ساخت و به برنامه بگید از اون استفاده کنه
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
با سلام
من اومدم دیتابیس را به لیست ویو وصل کردم آلانم هیچ مشکلی ندارم
توی لیست ویو من چند تا آیکن گذاشتم که یکی برایش اینه که وقتی کاربر روش کلیک کرد مقدار ستون fav که بصورت پیش فرض 0 گذاشتم 1 بشه؟
حالا فقط موندم چجوری شماره آی دی این قسمت از لیست ویو را انتخاب کنم ؟؟؟
منظور کلی اینه که با توجه به اینکه لیست ویو هستش چجوری مقدار آیتم مربوطه را بگیرم و بعدش دستور sql بکار ببرم که وقتی کاربر روی آیکن مربوط به هر آیتم کلیک کرد شما فقط برو مقدار fav مربوط به اون آیتمو تغییر بده نه همه لیست ویو را ؟؟؟؟؟؟
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
نقل قول:
نوشته شده توسط
naserzadeh
با سلام
من اومدم دیتابیس را به لیست ویو وصل کردم آلانم هیچ مشکلی ندارم
توی لیست ویو من چند تا آیکن گذاشتم که یکی برایش اینه که وقتی کاربر روش کلیک کرد مقدار ستون fav که بصورت پیش فرض 0 گذاشتم 1 بشه؟
حالا فقط موندم چجوری شماره آی دی این قسمت از لیست ویو را انتخاب کنم ؟؟؟
منظور کلی اینه که با توجه به اینکه لیست ویو هستش چجوری مقدار آیتم مربوطه را بگیرم و بعدش دستور sql بکار ببرم که وقتی کاربر روی آیکن مربوط به هر آیتم کلیک کرد شما فقط برو مقدار fav مربوط به اون آیتمو تغییر بده نه همه لیست ویو را ؟؟؟؟؟؟
سلام
شما باید علاوه بر آرایه اصلی که به آداپتر میفرستین، یک آرایه آیدی ها رو هم بفرستید تا بتونید بهشون با position دسترسی داشته باشید
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
تشکر اوکی شد
حالا اگه بخوام بگم مثلا ای آیتمی که مقدار شما 1 هستش مقدرا آیکن شما ستاره زرد هستش و آیتمی که مقدار fav 0 هستش مقدرا آیکن شما باشه ستاره مشکی :بامزه:
که دائمی باشه مگر اینکه مقدار دوباره برعکس بشه!!!
در حالت عادی ستاره عوض میشه ولی دستور sql کار نمیکنه اگه میشه ببینید مشکل کد من کجاست
btnfav.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
int id = adapter.getPosition(item);
G.database = SQLiteDatabase.openOrCreateDatabase(G.DIR_APP + "/dbkalam.sqlite", null);
G.database.execSQL("UPDATE tbl_kalam SET fav =1 WHERE rowid = " + id);
if (id == 0) {
btnfav.setImageResource(R.drawable.fav_off);
} else {
btnfav.setImageResource(R.drawable.fav_on);
}
}
});
adapter.notifyDataSetChanged();
}
}
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
در اینصورت باید یک آرایه از حالت های لایک هم بفرستید
به این صورت که مشخص باشه لایک هر آیتم صفر هست یا یک
بعد تمام اینا رو باید با شرط کنترل کنید دوست عزیز
بگید اگر لایکش صفر هست این عکس اگر یک هست این عکس
و وقتی روی دکمه کلیک میشه اگر لایکش صفر هست آپدیت کن یک بشه، اگر یک هست آپدیت کن صفر بشه
یک نمونه برنامه برای لایک توی تاپیک نمونه برنامه ها هست، میتونید از اون استفاده کنید
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
آقا یکی به من بگه من چه گلی به سرم بگیرم...
ببینید داستان از این قراره:
db = new DBAdapter(this);
db.open();
imp.setText(mokhatab.getImp());
String sid=mokhatab.getsenfid();
senfid.setText(db.execSQL("SELECT " + DBAdapter.SENF_NAME + " FROM " + DBAdapter.DATABASE_SENFTABLE + " WHERE " + DBAdapter.SENF_ROWID + " = " + sid ););
یه دیتابیس دارم به نام db همونطور که میبینید، قطعه کد imp.setText(mokhatab.getImp());
خیلی قشنگ میاد این imp رو میگیره و میذاره توی ویوی من.
حالا قصد دارم به این بفهمونم که داداش من، وقتی میخوای senfid رو settext کنی، بیا برو ببین این senfid که ریختیش توی sid برابر چه ردیفی از نام جدول DATABASE_SENFTABLE هست، اون نام رو بجای عدد برای من settext کن.
نمیفهمه، منم نمیتونم بهش بفهمونم...
یکی راهنمایی کنه توروخدا
ممنون
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
سلام
مشکل شما توی خوندن از جدول هست
کوئری شما درسته، اما نحوه خوندن درست نیست
شما باید با دستور db.rawQuery اطلاعات برگشتی رو بریزید توی Cursor و بعد از توی Cursor بخونید اطلاعات رو
به اولین پست همین تاپیک، قسمت خوندن اطلاعات مراجعه کنید
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
من توی دیتابیس یک فیلد آیدی دارم که بصورت اتوماتیک آیدی میده حالا اگه من بیام این دیتابیسو به لیست ویو اتصال بدم برای بدست آوردن مقدار id هر آیتم از چه دستوری استفاده کنم!!!!!!!!
-
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
نقل قول:
نوشته شده توسط
naserzadeh
من توی دیتابیس یک فیلد آیدی دارم که بصورت اتوماتیک آیدی میده حالا اگه من بیام این دیتابیسو به لیست ویو اتصال بدم برای بدست آوردن مقدار id هر آیتم از چه دستوری استفاده کنم!!!!!!!!
خدمتتون عرض کردم، باید علاوه بر مقادیری که میخواین نمایش بدید ( که داخل یک آرایه معمولا به آداپتر فرستاده میشه ) باید آیدی ها رو هم توی یک آرایه به آداپتر بفرستید تا بتونید به آیدی دسترسی داشته باشید
نمونه برنامه افزودن به علاقه مندی ها رو توی تاپیک نمونه برنامه ها ببینید