نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
سلا م CRbreeze@ عزیز؛
1. یه تاپیک جدید بزن و مشکلت رو اونجا مطرح کن اینجا مربوط به کار با SQLite با استفاده از کلاس SQLiteAssetHelper هستش.
2. لوگ کت رو بزار که ببینیم چه خطایی میده.
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
آخه من گفتم یه تاپیک جدید نزنم شاید مشکل ساز بشه
الان درست میکنم...
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
سلام من تازه اندروید رو شروع کردم الان میخوام با بانک کار کنم تمام پست ها رو خوندم و اجرا کردم اما توی پوشه lib فایل جاوا رو که کپی کردم روش یک علامت قرمز و روی پوشه برنامه هم ضربدر قرمز میاد موقع اجرا هم اصلا هیچ تغییری درyouwave نمیاد انگار نه انگار که اجرا رو زدم من بانکم رو با sqlite expert ایجاد کردم با پسوند db بود توی پوشه asset هم database ساختم و کپی کردم کسی ميدونه باید چکار کنم eclips م 3.4 و sqlite4
ممنون
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
سلام من طبق
https://barnamenevis.org/showthread.p...2-%D8%A8%D9%87
برای کار با بانک در اندروید یه بانک sqlite ساختم با نام test.db و توی پوشه asset→databases کپی کردم فایل جار هم در lib
این کدها رو هم نوشتم
mydtabase.java
public class MyDatabase extends SQLiteAssetHelper {
private static final String DATABASE_NAME = "test.db";
private static final int DATABASE_VERSION = 3;
public MyDatabase (Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
}
main.java
public class MainActivity extends ActionBarActivity {
private MyDatabase MyData;
private TextView txt;
private SQLiteDatabase mydb;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MyData = new MyDatabase(this);
mydb = MyData.getReadableDatabase();
/*mydb.execSQL("update user set name='dara' where _id=1");*/
Cursor c=mydb.rawQuery("select * from user",null);
if(c.getCount()==0)
{
mydb.execSQL("update user set name='dara' where _id=1");
}
txt=(TextView) findViewById(R.id.textView2);
txt.setText("ok");
}
}
اما موقع اجرا پیغام unfortunately my app has stoped میدهد ممنون میشم راهنماییم کنید مشکل کارم کجاست؟
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
shabgardetanha@ تنها راهنمایی که میشه کرد اینه که بگیم "متاسفانه برنامه شما متوقف شده است"
اینو کلی بهت میگم تا وقتی که لوگ کت رو نزاری کسی حال و حوصله تست و دیباگ برنامه ت رو نداره.
متن لوگ کت (همون خطوط قرمزی که موقع اجرا برنامه توی اندروید استادیو نمایش داده میشه) رو بزار که متوجه بشیم مشکل کجاست.
موفق باشی
نقل قول: کار با دیتابیس آماده به آسانی با استفاده از لایبری sqlite asset helper
[QUOTE=poorman;1987677]آموزش کار با دیتابیس آماده SQLite برای ساخت یک دیتابیس خارجی و آماده نرم افزار SQLite Database Browser رو پیشنهاد میکنم نمونه کار با دیتابیس آماده و نمایش و آپدیت اطلاعات دیتابیس رو از این پست دریافت کنید ----------------------------------------------------------------------------------------------- بالاخره من دیشب تونستم تمام مشکلات مربوط به دیتابیس آماده رو حل کنم و ارتباط خوبی برقرار کنم با لایبری sqlite asset helper ( با تشکر از hamedjj به خاطر پافشاری روی استفاده از این لایبری ) ولی خب استفاده از این لایبری هم یکم برام گیج کننده بود که خدا رو شکر تونستم آخرش راه بندازمش من یه توضیح میدم واسه کسایی که میخوان با دیتابیس آماده کار کنن و مثل من به مشکل خوردن انصافا استفاده از sqlite asset helper راحته و بسیار کارا یکی از مشکلاتی که من برخورد کردم توی استفاده از کلاس های دیگه، این بود که توی اندروید 10 به پایین دیتابیس رو ایجاد نمیکرد ولی این لایبری مشکل رو حل کرد خب دوستانی که با اکلیپس کار میکنن این فایل jar رو دانلود کنن و توی پروژه مورد نظر در پوشه libs قرار بدن لینک فایل jar توی پوشهassets یک پوشه به اسم databases بسازید بعد دیتابیس خودتون رو zip کنید ( فایل دیتابیس به تنهایی باید پسوند .db داشته باشه ) فایل زیپ شده رو با فرمت اسم ( DataBaseName.db.zip ) توی پوشه databases بذارید. ( دقت کنید باید هم پسوند db هم پسوند zip داشته باشه ) یعنی نمایش فایل زیپ توی ویندوز به صورت DataBaseName.db و نمایش توی اکلیپس به شکل DataBaseName.db.zip باشه بعدش این کلاس رو ایجاد کنین public class MyDatabase extends SQLiteAssetHelper { private static final String DATABASE_NAME = "DataBaseName.db"; private static final int DATABASE_VERSION = 1; public MyDatabase (Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); setForcedUpgrade(); } }
توی کلاسی که ایجاد کردین اسم دیتابیس خودتون رو با پسوند db وارد کنین بعدش توی اکتیویتی توی متغیرهای عمومی یک نمونه از این کلاس تعریف کنید، به این صورت : private MyDatabase MyDataBase;
و بعد توی متد onCreate این خط کد رو بنویسین : MyDataBase = new MyDatabase(this);
حالا هر جایی که خواستین دیتابیس رو باز کنین، میتونین از دو تا حالت getWritableDatabase() و getReadableDatabase() که برای خوندن و نوشتن هست استفاده کنین به صورت زیر مثلا :
mydb = MyDataBase.getReadableDatabase();
وقتی getReadableDatabase استفاده میکنید، فقط عملیات خواندن رو میتونید انجام بدید پس برای نوشتن یا آپدیت و دیلت باید از getWritableDatabase استفاده کنید
من از این کد استفاده کردم ولی متاسفانه دیتابیسم در مسیر data/data/pack_name/database ایجاد نشد میخاستم بدونم مشکل از کجاست تازه یه اروری هم توی logcat دارم ک میگه فولدرتون توی asset فقط readable و وقتی readable هم میزارم بازم ارور میده java.lang.RuntimeException: Unable to start activity ComponentInfo{com.helper.hjuybar/com.helper.hjuybar.A_bank_activity}: com.readystatesoftware.sqliteasset.SQLiteAssetHelp er$SQLiteAssetException: Missing databases/hjuybar.db file (or .zip, .gz archive) in assets, or target folder not writable
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
سلام دوستان
یه پروژه رو کسی برام فرستاده ایراداشو برطرف کردم و از SQLiteAssetHelper هم برای وصل شدن به دیتابیس استفاده کردم مشکلی که الان وجود داره اینه که وقتی با 4.1.1 اجرا میگیرم لیست ویو رو مشاهده میکنم ولی در 5.0.0 خطا میده ...
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
سلام ، دوستان لطفا دیگه مستقیم با خود SQlite کار نکنید ، یا از ORM استفاده کنید ، مثل Sugar , Sprinkles,.... یا از Realm استفاده کنید ، این Realm تازه اومده و انگار سرعتش خیلی بیشتر از SQlite هستش.
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
سلام به شما و ممنونم از همه عزیزان .
انشالله خدا از شما راضی باشد :لبخند:
من تازه شروع کردم و نمی دونم این راههایی که فرمودین چی هستن و اینکه آیا از هم جدا اند یا اینکه همه خوبsqllite هستن ...؟؟؟
اینکه من باید از کجا شروع کنم ؟
کدوم راه بهتره ؟
یه توضیح مختصر راجع به همه این آموزش ها به صورت کلی می فرمایید .؟
ممنونم
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
سلام دوستان هرکی میتونه کمکم که دوماهه خداشاهده دارم کلنجار میرم این برنامه درست نمیشه هرکی بتونه کمکم کنه بخدا دستشو از اینجا میبوسم دیگه داره مخم سوت میکشه دیگه شک افتاده بهم که اشکال از برنامه نیست اشکال از اندروید استودیو منه.نمیدونم هرکی میتونه کمک کنه فقط .برنامشم اینه که اطلاعات رو از کاربر میگیره ثبت میکنه تو دیتابیس
این از کلاس مدیریت دیتابیس:
package mehrsoft.com.app3;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DataBaseManagment extends SQLiteOpenHelper {
public DataBaseManagment(Context context) {
super(context, "DbTest", null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
String Q_CreateTable="CREATE TABLE T_Users ( "+
" UserId INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,"+
" Name VARCHAR NOT NULL,"+
" Age INT,"+
" Avg REAL);";
db.execSQL(Q_CreateTable);
db.close();
}
public boolean AddUser(User u)
{
try{
SQLiteDatabase db=this.getWritableDatabase();
String Q1="Insert INTO T_Users(Name,Age,Avg)Values('"+u.Name+"',"+u.Age+","+u.Avg+")";
db.execSQL(Q1);
db.close();
return true;
}
catch(Exception ex)
{
return false;
}
}
public User GetUser(int id)
{
User k=new User();
SQLiteDatabase db=this.getReadableDatabase();
String Q1="Select * From T_Users where UserId="+id;
Cursor C1=db.rawQuery(Q1,null);
if(C1.moveToFirst()==true)
{
k.Id=C1.getInt(0);
k.Name=C1.getString(1);
k.Age=C1.getInt(2);
k.Avg=C1.getDouble(3);
}
return k;
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
این از کلاس مدل :
package mehrsoft.com.app3;
public class User {
public int Id;
public String Name;
public int Age;
public double Avg;
ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ــــــــــــــ
اینم از Main activity:
package mehrsoft.com.app3;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
Button btnregister;
Button btnsearch;
EditText edtname;
EditText edtid;
EditText edtage;
EditText edtsearch;
TextView txt1;
DataBaseManagment db;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnregister = (Button) findViewById(R.id.btnregister);
btnsearch = (Button) findViewById(R.id.btnsearch);
edtname = (EditText) findViewById(R.id.edtname);
edtid = (EditText) findViewById(R.id.edtid);
edtage = (EditText) findViewById(R.id.edtage);
edtsearch = (EditText) findViewById(R.id.edtsearch);
txt1 = (TextView) findViewById(R.id.txt1);
btnregister.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
db=new DataBaseManagment(MainActivity.this);
User u=new User();
u.Name=edtname.getText().toString();
u.Age=Integer.parseInt(edtage.getText().toString());
u.Avg=Double.parseDouble(edtid.getText().toString());
boolean f= db.AddUser(u);
if (f==true){
Toast.makeText(MainActivity.this,"sabt shod",Toast.LENGTH_LONG).show();;
}
else {
Toast.makeText(MainActivity.this,"erororor",Toast.LENGTH_LONG).show();;
}
}
});
btnsearch.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int id=Integer.parseInt(edtid.getText().toString());
User u=db.GetUser(id);
if (u.Id!=0){
txt1.setText(u.Age+" "+u.Avg+""+u.Name);
}
else {
Toast.makeText(MainActivity.this,"پیدا نشد",Toast.LENGTH_LONG).show();
txt1.setText("");
}
}
});
}
}
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
در ضمن بگم هیچ اروری نداره موقع اجرا فقط ثبت نمیکنه اطلاعات رو
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
نقل قول:
نوشته شده توسط
hamedjj
دیتابیس را باید تو پوشه databases و سپس تو پوشه asset قرار بدی
شما این کار را کردید؟
کسی نیست سوال منو جواب بده؟؟؟
من یه سایت پیدا کردم اموزش کامل Sqlite داره بصورت رایگان . گفتم به اشتراک بزارم شاید برای دوستان مفید باشه
http://mehrtash-souri.com/article/6/...2%D8%B4-SQLite
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
سلام
یه برنامه میخام بنویسم که یه دیتابیس داشته باشم و دریافت و پرداخت های چند نفر رو بتونم توش ذخیره کنم
تعداد نفرات ممکته کم یا زیاد بشه
ستون های دیتابیس :
نام فرد - مبلغ دریافتی - مبلغ پرداختی - تاریخ
حالا سوال اینجاست برای ذخیره کردن کلیه تراکنش های یه نفر از ستون های همین دیتابیس استفاده کنم ؟ یا برای هر نفر یه دیتابیس جدا ؟ یا چی ؟ به طوری که بتونم گزارش کامل از تراکنش ها داشته باشم ؟
مثلا فرض کنید نفر اول اسمش علی هست و در ده تا تاریخ مختلف مبالغی برداشت و پرداخت کرده
میخام طوری باشه که هر وقت علی پول پرداخت یا دریافت کرد این تاریخ و مبلغ رو یه جا ذخیره کنم . حالا کجا باید ذخیره بشه ؟
..............
یا مثلا تو این برنامه های مدیریت دخل و خرج ، مثلا هزینه هایی که برای بنزین قراره ثبت بشه (به همراه تاریخش ) به چه صورت و در چه متغیرهایی ذخیره میشه ؟
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
من با این کد :
mydb = openOrCreateDatabase(DBNAME, Context.MODE_PRIVATE,null);
mydb.execSQL("INSERT INTO " + TABLE + "(NAME, PLACE) VALUES('یک دو سه','امتحان')");
یه جدول ساختم ولی نمیتونم اطلاعات واردش کنم ......
میشه سایتم را ببینید
نقل قول: آموزش : کار با دیتابیس SQLite به زبان ساده بدون نیاز به کلاس DataBaseHelper
دوستان یه سوال! با نرم افزار DB Browser یه دیتابیس ساختم، هیچ مشکلی هم نداره در برنامه. حالا دیتابیس رو از همون DB Browser رمزگذاری کردم، توی برنامه اصلی باید چه کدی بنویسم که رمز رو بهش نشون بدم؟ در واقع چطوری از دیتابیس خارجی رمزدار استفاده کنم؟