我有一个现有的sqlite数据库.我正在开发一个Android应用程序,我想将它与现有的sqlite DataBase连接.
问题1: 根据我的讲师的建议,我已经通过"DDMS推送数据库功能"在我的项目中包含了sqlite数据库.现在我想从数据库中获取数据,我是否需要使用SQLiteOpenHelper.如果是,如何使用它以及将在onCreate(SQLiteDatabase db)函数和onUpgrade(SQLiteDatabase db,int oldVersion,int newVersion)函数中编码的函数,因为我们已经拥有了数据库,我们并不需要创建它.
问题2: 如何从现有数据库中获取所需数据应该怎么做.
作为一个新手,我很困惑,有人可以解释这些概念,并指导我克服这个问题.任何帮助,将不胜感激.
我已经看到了@TronicZomB提出的教程,但是根据本教程(http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/) ,我必须将所有带有主键字段的表作为_id.
我有7个表,即目的地,事件,旅游,tour_cat,tour_dest,android_metadata和sqlite_sequence.总而言之,只有tour_dest不满足具有名为_id的主键的条件.怎么弄清楚这一个?
以下是表的屏幕截图,该表缺少绑定数据库表的id字段所需的主键字段.

我相信错误在于我设置DATABASE_CREATE的方式.我在这里错过了什么吗?我得到SQLiteException,其中long id = -1.如果我提供足够的细节,请告诉我.我试过设置KEY_ID ="_ id";
E/SQLiteLog(2385): (1) near "group": syntax error
E/SQLiteDatabase(2385): Error inserting group=demo
E/SQLiteDatabase(2385): android.database.sqlite.SQLiteException: near "group": syntax error (code 1): , while compiling: INSERT INTO groups(group) VALUES (?)
LOG(2385): Inserting record...
LOG(2385): mGroupName = demo
LOG(2385): long id = -1
Run Code Online (Sandbox Code Playgroud)
DBAdapter.java
public static final String KEY_ID = "id";
public static final String KEY_GROUP_NAME = "group";
public static final String TAG = "DBAdapter";
public static final String DATABASE_NAME = "GroupsDB";
public static final String DATABASE_TABLE = "groups"; …Run Code Online (Sandbox Code Playgroud) 嗨,我有一个与数据库有关的问题
在我的项目中,我需要在特定的文件夹中建立数据库,所以任何伙伴都可以告诉我哪里错了
此类在以下位置创建数据库 /data/data/package_folder/database_name
我想将其更改为 sdcard/database_folder/database_name
请检查我下面的代码
package com.example.qrcode.data;
public class LocalDatabase extends SQLiteOpenHelper {
public static final int DATABASE_VERSION = 1;
// database name
public static final String DATABASE_NAME = "qrcode_database";
// table name
public static final String TABLE_NAME = "scan_result";
// table field name
public static final String COLUMN_ID = "id";
public static final String COLUMN_NAME = "scan_url";
public static final String SAVE_TABLE_NAME = "DEVICE";
public static final String SAVE_COLUMN_ID = "ID";
public static final String SAVE_COLUMN_NAME = …Run Code Online (Sandbox Code Playgroud) 在使用api 10在仿真器Nexus S Platform 2.3.3上执行android app时出现以下错误.它适用于带有api 18的Nexus 4 Android 4.3.AppDatabase扩展了SQLiteOpenHelper.
码:
public class AppController extends Application {
[...]
private static AppDatabase mDbo;
[...]
try {
// Here comes the crash, it crashes immediately, i cannot step into
mDbo = new AppDatabase( AppDatabase.NAME,null, new AppSQLiteCursor(),AppDatabase.VERSION) ;
}
}
Run Code Online (Sandbox Code Playgroud)
错误堆栈跟踪:
12-14 23:04:01.996 1372-1372/com.example.myapp E/APP_ERROR? VerifyError raised!
java.lang.VerifyError: com.example.myapp.database.AppDatabase
at com.example.myapp.AppController.onCreate(AppController.java:85)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:969)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:3272)
at android.app.ActivityThread.access$2200(ActivityThread.java:117)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:969)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3683)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
at …Run Code Online (Sandbox Code Playgroud) 我试图使用以下sqlite查询创建表.
private static final String CREATE_EMPLOYEE_TABLE = "CREATE TABLE " + TABLE_EMPLOYEE + "("
+ KEY_DOMAIN_ID + " INTEGER PRIMARY KEY,"
+ KEY_FROM + " TEXT,"
+ KEY_TO + " TEXT" + ")";
private static final String CREATE_GROUPS_TABLE = "CREATE TABLE " + TABLE_GROUPS + "("
+ KEY_USERID + " INTEGER PRIMARY KEY,"
+ KEY_NAME + " TEXT,"
+ KEY_SESSION_TOKEN + " TEXT,"
+ KEY_GROUP_ID + " TEXT,"
+ KEY_GROUP_NAME + " TEXT" + ")";`
Run Code Online (Sandbox Code Playgroud)
我使用以下代码向db添加元素,
db.addEmployees(new Employee(id,from,to));
db.addGroup(new Group(Integer.valueOf(userId),name,session,groupId,groupName)); …Run Code Online (Sandbox Code Playgroud) 我正在创建一个简单的预算管理应用程序.为了存储预算详细信息,我创建了一个表.这是我的DataBaseHelper类:
package com.example.rajkumar.budget;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.content.Context;
public class DatabaseHelper extends SQLiteOpenHelper {
private static final int DATABASE_VERSION=1;
private static final String DATABASE_NAME="SQLiteDatabase.db",
TABLE_NAME="MyBudget";
public static final String COLUMN_FIRST_NAME="NAME",
COLUMN_TWO_NAME="BUDGET_NAME",
COLUMN_THREE_NAME="LIMIT";
public DataBaseHelper(Context context){
super(context,DATABASE_NAME,null,DATABASE_VERSION);
}
public void onCreate(SQLiteDatabase db){
db.execSQL("CREATE TABLE" + TABLE_NAME + "(" + COLUMN_FIRST_NAME + "VARCHAR," + COLUMN_TWO_NAME
+ "VARCHAR," + COLUMN_THREE_NAME + "DECIMAL);");
}
public void onUpgrade(SQLiteDatabase db,int oldVersion,int newVersion){
db.execSQL("DROP TABLE IF EXISTS"+TABLE_NAME);
onCreate(db);
}
public boolean addBudget(String …Run Code Online (Sandbox Code Playgroud)