رفتن به مطلب
انجمن اندروید ایران | آموزش برنامه نویسی اندروید و موبایل
  • android.png.1fab383bc8500cd93127cebc65b1dcab.png

مشکل با دیتابیس خارجی


پست های پیشنهاد شده

سلام بچه ها ... من تازه عضو اینجا شدم ... امیدوارم بتونم مشکلم رو حل کنم.

از کدهای زیر استفاده کردم .... کل برنامه کارش اینکه یه سری فیلد رو بریزه تو دیتابیس اما همون اول کار ارور no such table رو میده.

حالا من چیکار کردم از طریق نرم افزار اس کیو ال فایل دیتابیسم رو که داخلی یه جدول به نام ptable بوده رو ساختم و در همون نرم افزار اسم ستونهام رو هم مشخص کردم .منظور دیگه نیازی به درست کردن جدول در اکلیپس ندارم اما متاسفانه موقه اینسرت ارور no such table ptable رو میده وقتی که query رو اجرا می کنم

فایل دیتابیس رو هم به پوشه asset ریختم .

این کد فایل assetdb

[shcode=java]package com.paragraph.paragraphdoc;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

import java.util.ArrayList;

import android.content.ContentValues;

import android.content.Context;

import android.database.Cursor;

import android.database.sqlite.SQLiteDatabase;

import android.database.sqlite.SQLiteException;

import android.database.sqlite.SQLiteOpenHelper;

import android.util.Log;

public class Assetdb extends SQLiteOpenHelper {

    private final Context mycontext;

    public final String path="data/data/com.paragraph.paragraphdoc/databases/";

    public final String Name="paragraph";

    public SQLiteDatabase mydb;

   

    public Assetdb(Context context) {

        super(context, "paragraph", null, 1);

        mycontext=context;

       

    }

    public void onCreate(SQLiteDatabase arg0) {

        // [email protected] Auto-generated method stub

    }

   

    public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {

        // [email protected] Auto-generated method stub

       

    }

   

    public void open(){

        mydb=SQLiteDatabase.openDatabase(path+Name, null, SQLiteDatabase.OPEN_READWRITE);

    }

   

    public void close(){

        mydb.close();

    }

   

    public void useable(){

        boolean checkdb=checkdb();

        if(checkdb){   }

        else{

            this.getReadableDatabase();

            try {

                copydatabase();

            } catch (IOException e) {

       

            }

        }

    }

   

    public boolean checkdb() {

       

        SQLiteDatabase db=null;

       

        try{

            db=SQLiteDatabase.openDatabase(path+Name, null, SQLiteDatabase.OPEN_READONLY);

        }catch(SQLiteException e){

           

        }

       

        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();

    }

// Add your public helper methods to access and get content from the database.

// You could return cursors by doing "return myDataBase.query(....)" so it'd be easy

// to you to create adapters for your views.

    public boolean inserInTblInfo(String reshteh,String docname,String ostad,String storage,String pagenumber, String price,String desc){

        SQLiteDatabase db=this.getWritableDatabase();

        ContentValues cv=new ContentValues();

        cv.put("reshteh", reshteh);

        cv.put("docname", docname);

        cv.put("ostad", ostad);

        cv.put("storage", storage);

        cv.put("pagenumber", pagenumber);

        cv.put("price", price);

        cv.put("desc", desc);

        db.insert("ptable", null, cv);

        Log.e("???????????", "insert shod");

        return true;

    }

    public ArrayList getAll(){

        ArrayList arr1=new ArrayList();

        SQLiteDatabase db=this.getReadableDatabase();

        Cursor cur=db.rawQuery("select * from ptable", null);

        cur.moveToFirst();

        while(cur.isAfterLast()==false){

            arr1.add(cur.getString(cur.getColumnIndex("docname")));

            cur.moveToNext();

        }

        return arr1;

    }

   

   

   

//    public int getProfilesCount() {

//        String countQuery = "SELECT  * FROM doctbl";

//        SQLiteDatabase db = this.getReadableDatabase();

//        Cursor cursor = db.rawQuery(countQuery, null);

//        int cnt = cursor.getCount();

//        cursor.close();

//        return cnt;

//    }

}

[/shcode]

و این هم main activity من :

[shcode=java]package com.paragraph.paragraphdoc;

import java.util.ArrayList;

import com.paragraph.paragraphdoc.Assetdb;

import com.paragraph.paragraphdoc.R;

import android.support.v7.app.ActionBarActivity;

import android.content.Intent;

import android.os.Bundle;

import android.view.Menu;

import android.view.MenuItem;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.AdapterView;

import android.widget.ArrayAdapter;

import android.widget.EditText;

import android.widget.ImageButton;

import android.widget.ListView;

import android.widget.Spinner;

public class MainActivity extends ActionBarActivity {

    private String array_spinner[]=new String[23];

    private ImageButton add;

    private ListView lv_main;

    private EditText search;

    Assetdb dbShowALL;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        Spinner s = (Spinner) findViewById(R.id.spineer_reshteh);

        ImageButton add=(ImageButton) findViewById(R.id.imgbtn_add);

        ListView lv_main=(ListView)findViewById(R.id.lv_main);

        EditText search=(EditText)findViewById(R.id.editText_search);

       

        dbShowALL=new Assetdb(this);

        ArrayList arr1=dbShowALL.getAll();

        ArrayAdapter arrAdapter=new ArrayAdapter(this, android.R.layout.simple_list_item_1,arr1);

        lv_main.setAdapter(arrAdapter);

       

       

       

        add.setOnClickListener(new OnClickListener(){

            @Override

            public void onClick(View arg0) {

               

                Intent nextpage=new Intent(MainActivity.this,Reg.class);

                startActivity(nextpage);

               

            }

           

        });

       

        spineer(s);

    }

   

    @Override

    protected void onResume() {

        // TODO Auto-generated method stub

        super.onResume();

       

    }

   

    private void  spineer(Spinner s) {

        //-------------------------------------------------------------

               

                    array_spinner[0]="معماری-کاردانی";

                    array_spinner[1]="معماری-کارشناسی ناپیوسته";

                    array_spinner[2]="معماری داخلی-کارشناسی پیوسته";

                    array_spinner[3]="حسابداری-کاردانی";

                    array_spinner[4]="حسابداری-کارشناسی ";

                    array_spinner[5]="حسابداری-ارشد";

                    array_spinner[6]="فضای سبز-کارشناسی";

                    array_spinner[7]="مدیریت بازرگانی-کاردانی";

                    array_spinner[8]="مدیریت بازرگانی-کارشناسی";

                    array_spinner[9]="چهانگردی-کاردانی";                   

                    array_spinner[10]="جهانگردی-کارشناسی";

                    array_spinner[11]="شهرسازی-کارشناسی";

                    array_spinner[12]="مدیریت شهری-ارشد";

                    array_spinner[13]="مدیریت صنعتی-کاردانی";                   

                    array_spinner[14]="مدیریت صنعتی-کارشناسی";

                    array_spinner[15]="مدیریت صنعتی-ارشد";

                    array_spinner[16]="منابع طبیعی-کارشناسی";

                    array_spinner[17]="مدیریت پروژه-کارشناسی";                   

                    array_spinner[18]="محیط زیست-ارشد";

                    array_spinner[19]="برنامه ریزی شهری-ارشد";

                    array_spinner[20]="آموزش زبان انگلیسی-کارشناسی";

                    array_spinner[21]="مترجمی زبان-کارشناسی";       

                    array_spinner[22]="علوم ورزشی-کارشناسی";                   

                   

                   

        //-------------------------------------------------------------

       

                    ArrayAdapter adapter = new ArrayAdapter(this,

                    R.layout.support_simple_spinner_dropdown_item, array_spinner);

                    s.setAdapter(adapter);

                   

        //-------------------------------------------------------------

                   

                    s.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

       

                        @Override

                        public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3)

                        {

                            if (array_spinner[arg2].equals("تحقیق"))

                            {

                            }

                            else if (array_spinner[arg2].equals("پاورپوینت"))

                            {

                            }

                        }

       

                        @Override

                        public void onNothingSelected(AdapterView<?> arg0) {

                            // TODO Auto-generated method stub

                           

                        }

       

                            

       

                    });

    }

}

[/shcode]

و این هم کلاسی که توش فیلدها رو پر میکنم و اینسرت می کنم :

[shcode=java]package com.paragraph.paragraphdoc;

import com.paragraph.paragraphdoc.Assetdb;

import android.app.Activity;

import android.os.Bundle;

import android.support.v7.app.ActionBarActivity;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.AdapterView;

import android.widget.ArrayAdapter;

import android.widget.EditText;

import android.widget.ImageButton;

import android.widget.Spinner;

import android.widget.Toast;

public class Reg extends ActionBarActivity{

    private String array_reshteh[]=new String[23];

    private String array_saveloc[]=new String[5];

    private Assetdb docdb;

    private ImageButton save,back;

    private  EditText jozve,ostad,pagenumber,price,desc;

   

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        // TODO Auto-generated method stub

        super.onCreate(savedInstanceState);

        setContentView(R.layout.reg);

       

        final Spinner reshteh=(Spinner) findViewById(R.id.spineer_reshteh);

        final Spinner saveloc = (Spinner) findViewById(R.id.spineer_saveloc);

       

        ImageButton save=(ImageButton)findViewById(R.id.btn_save);

        ImageButton back=(ImageButton)findViewById(R.id.btn_back);

       

        final EditText jozve=(EditText)findViewById(R.id.edittext_namejozve);

        final EditText ostad=(EditText)findViewById(R.id.edittext_ostad);

        final EditText pagenumber=(EditText)findViewById(R.id.edittext_pagenumbers);

        final EditText price=(EditText)findViewById(R.id.edittext_price);

        final EditText desc=(EditText)findViewById(R.id.edittext_description);

       

       

//        if(jozve.getText().toString()!=null|ostad.getText().toString()!=null|pagenumber.getText().toString()!=null|price.getText().toString()!=null|desc.getText().toString()!=null){

//               

        reshteh_spineer(reshteh);

        saveloc(saveloc);

 

                   

         docdb = new Assetdb(this.getApplicationContext());

       

        save.setOnClickListener(new OnClickListener(){

           

             

            @Override

            public void onClick(View arg0) {

               

                if(jozve.getText().toString().matches("")|ostad.getText().toString().matches("")|price.getText().toString().matches("")){

                   

                        Toast.makeText(getApplicationContext(), "ورودی های خود را کامل پر نکرده اید", Toast.LENGTH_SHORT).show();

                }

                else

                    {

                        docdb=new Assetdb(getApplicationContext());

                        docdb.inserInTblInfo(reshteh.getSelectedItem().toString(), jozve.getText().toString(), ostad.getText().toString(), saveloc.getSelectedItem().toString(), pagenumber.getText().toString(), price.getText().toString(), desc.getText().toString());

                        Toast.makeText(getApplicationContext(), " جزوه مورد نظر در شاخه "+reshteh.getSelectedItem().toString()+" با موفقیت ذخیره گردید ", Toast.LENGTH_SHORT).show();

                        finish();

                       

                    }

               

                }

        });

       

    }

   

    private void  reshteh_spineer(Spinner s) {

        //-------------------------------------------------------------

               

        array_reshteh[0]="معماری-کاردانی";

        array_reshteh[1]="معماری-کارشناسی ناپیوسته";

        array_reshteh[2]="معماری داخلی-کارشناسی پیوسته";

        array_reshteh[3]="حسابداری-کاردانی";

        array_reshteh[4]="حسابداری-کارشناسی ";

        array_reshteh[5]="حسابداری-ارشد";

        array_reshteh[6]="فضای سبز-کارشناسی";

        array_reshteh[7]="مدیریت بازرگانی-کاردانی";

        array_reshteh[8]="مدیریت بازرگانی-کارشناسی";

        array_reshteh[9]="چهانگردی-کاردانی";                   

        array_reshteh[10]="جهانگردی-کارشناسی";

        array_reshteh[11]="شهرسازی-کارشناسی";

        array_reshteh[12]="مدیریت شهری-ارشد";

        array_reshteh[13]="مدیریت صنعتی-کاردانی";                   

        array_reshteh[14]="مدیریت صنعتی-کارشناسی";

        array_reshteh[15]="مدیریت صنعتی-ارشد";

        array_reshteh[16]="منابع طبیعی-کارشناسی";

        array_reshteh[17]="مدیریت پروژه-کارشناسی";                   

        array_reshteh[18]="محیط زیست-ارشد";

        array_reshteh[19]="برنامه ریزی شهری-ارشد";

        array_reshteh[20]="آموزش زبان انگلیسی-کارشناسی";

        array_reshteh[21]="مترجمی زبان-کارشناسی";       

        array_reshteh[22]="علوم ورزشی-کارشناسی";   

                   

        //-------------------------------------------------------------

       

                    ArrayAdapter adapter = new ArrayAdapter(this,

                    R.layout.support_simple_spinner_dropdown_item, array_reshteh);

                    s.setAdapter(adapter);

                   

        //-------------------------------------------------------------

                   

                    s.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

       

                        @Override

                        public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3)

                        {

                            if (array_reshteh[arg2].equals("تحقیق"))

                            {

                            }

                            else if (array_reshteh[arg2].equals("پاورپوینت"))

                            {

                            }

                        }

       

                        @Override

                        public void onNothingSelected(AdapterView<?> arg0) {

                            // TODO Auto-generated method stub

                           

                        }

       

                            

       

                    });

    }

    private void  saveloc(Spinner s) {

        //-------------------------------------------------------------

               

                    array_saveloc[0]="TOSHIBA-720";

                    array_saveloc[1]="TOSHIBA-550";

                    array_saveloc[2]="TOSHIBA-PS3";

                    array_saveloc[3]="TOSHIBA-PCL6";

                    array_saveloc[4]="هارد کامپیوتر";

                   

        //-------------------------------------------------------------

       

                    ArrayAdapter adapter = new ArrayAdapter(this,

                    R.layout.support_simple_spinner_dropdown_item, array_saveloc);

                    s.setAdapter(adapter);

                   

        //-------------------------------------------------------------

                   

                    s.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

       

                        @Override

                        public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3)

                        {

                        }

       

                        @Override

                        public void onNothingSelected(AdapterView<?> arg0) {

                            // TODO Auto-generated method stub

                           

                        }

       

                            

       

                    });

    }

   

}

[/shcode]

تو رو خدا کمک کنید که الان 2 روز گیر اونم ... کل فولدم برنامه رو هم براتون آپلود کردم که اگر نیازی بود و دوست داشتین کمکم کنید بتونید ایمپورتش کنید :

http://uplod.ir/aumhs2dgn5lr/ParagraphDoc_-_Copy.zip.htm

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام

فکر کنم می گه جدول وجود نداره 

 Cursor cur=db.rawQuery("select * from ptable", null);

چک کن ببین نام جدول رو  درست نوشتی

لینک ارسال
به اشتراک گذاری در سایت های دیگر

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...