在另一个Android应用程序中使用sql lite数据库

时间:2017-05-28 20:49:51

标签: java android sqlite

你好我的android有问题。在我的应用程序中,我从Web服务获取数据,然后将其读入sql lite数据库。在我的活动中,我有多个微调器,这些微调器充满了数据库中的数据。选择所有微调器并单击按钮后,我转到另一个微动,我点击一个链接,数据被写入另一个表。

我将解释这个应用程序是什么样的形式,学生可以选择学校,学习区,......直到你有你想要的学费。您可以订阅课程(将数据写入另一个表格)。

在其他应用中,您可以看到学费与订阅者数量相关。

第一个应用程序有效,但我的问题是我需要在应用程序1中为app2使用的子文件表 我已经阅读了关于COntent提供者,共享用户ID但没有一个有效。

有人能帮助我吗?

 public class SchemaHelper extends SQLiteOpenHelper {
    private final static String DATABASE_NAAM ="av_helpdesk.be.db";
    private static final int DATABASE_VERSIE = 10;

public SchemaHelper(Context context) {
    super(context, DATABASE_NAAM, null, DATABASE_VERSIE);
}

@Override
public void onCreate(SQLiteDatabase db) {


    db.execSQL("CREATE TABLE "
            + GegevensTabel.TABEL_NAAM
            + " (" + GegevensTabel.ID
            + " INTEGER PRIMARY KEY,"
                    + GegevensTabel.INSTELLING
            + " TEXT,"

            + GegevensTabel.OPLEIDINGSTYPE
            + " TEXT,"
            + GegevensTabel.OPLEIDINGSGEBIED
            + " TEXT,"+ GegevensTabel.OPLEIDING+" TEXT,"
           + GegevensTabel.MODULE+" TEXT,"
           +  GegevensTabel.LESPLAATS_ADRES+" TEXT,"
            + GegevensTabel.AAVANGS_DATUM+" TEXT"+");"
    );

    db.execSQL("CREATE TABLE "
            + InschrijvingTabel.TABEL_NAAM
            + " (" + InschrijvingTabel.ID
            + " INTEGER PRIMARY KEY,"
            + InschrijvingTabel.LESPLAATS
            + " TEXT, "
            + InschrijvingTabel.OPLEIDING
            + " TEXT, "
            + InschrijvingTabel.Module
            + " TEXT, "+ InschrijvingTabel.AANTAL+" INTEGER"+");"

    );


}


 public interface InschrijvingTabel {

    String ID="_id";
    String Module = "_module";
    String TABEL_NAAM = "TBL_INSCHRIJVING1";
    String AANTAL="_aantal";
    String OPLEIDING="_opleiding";
    String LESPLAATS="_lesplaats";
}

    public class InschrijvingDB extends  SchemaHelper {
    public InschrijvingDB(Context context) {
        super(context);



    }



    public void  adVakken()
    {

        SQLiteDatabase sd=getWritableDatabase();
      //  String xx=x.getModule();
    // sd.rawQuery("insert into "+InschrijvingTabel.TABEL_NAAM+"("+ InschrijvingTabel.Module+") values("+xx+")",null);
   //  sd.rawQuery("insert into "+InschrijvingTabel.TABEL_NAAM+"(_module) values('cc')",null);



    }


public class contentPV extends ContentProvider {
    static final String PROVIDER_NAME = "com.example.derae.lessenrooster.databank.contentPV";
    static final String URL = "content://" + PROVIDER_NAME + "/*";
    static final Uri CONTENT_URI = Uri.parse(URL);
    @Override
    public boolean onCreate() {
        Context context = getContext();
InschrijvingDB x= new InschrijvingDB(context);
    return false;
}

@Nullable
@Override
public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {
    return null;
}

@Nullable
@Override
public String getType(Uri uri) {
    return null;
}

@Nullable
@Override
public Uri insert(Uri uri, ContentValues values) {
    return null;
}

@Override
public int delete(Uri uri, String selection, String[] selectionArgs) {
    return 0;
}

@Override
public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) {
    return 0;
}

}

1 个答案:

答案 0 :(得分:0)

如果您使用的是包含您要使用的所有表的1个数据库,并且您从app 2登录到该数据库,那么您应该能够访问那里的每个表。

尝试使用调试技术来查看app 2出了什么问题,比如打印调试。

如果您可以正常从app2连接到数据库,请检查您的查询是否有任何问题,以从所需的表中获取数据。将您的问题分解为部分。

- 对不起,如果这不够有用,我自己也不是专家,但我希望我的建议可以帮助你自己发现问题。