Android 数据库创建无法正常运行
我是一名windows phone开发者,不熟悉android数据库, 我无法在android中创建本地数据库 我无法理解我做错了什么 我将在我的数据库中存储一些数据,稍后将获取这些数据以填充我的listview 目前我无法创建示例数据库,下面是我的代码Android 数据库创建无法正常运行,android,sqlite,android-sqlite,Android,Sqlite,Android Sqlite,我是一名windows phone开发者,不熟悉android数据库, 我无法在android中创建本地数据库 我无法理解我做错了什么 我将在我的数据库中存储一些数据,稍后将获取这些数据以填充我的listview 目前我无法创建示例数据库,下面是我的代码 public final class DbContract { public DbContract() { } private static final String TEXT_TYPE = " TEXT"; private static
public final class DbContract {
public DbContract() {
}
private static final String TEXT_TYPE = " TEXT";
private static final String COMMA_SEP = ",";
private static DatabaseHelper dbHandler;
Context context;
public DatabaseHelper database;
/* Inner classes that defines the all table contents */
/**
* Hospital database structure, query
* */
public static abstract class Hospital implements BaseColumns {
public static final String TABLE_NAME = "emergency_hospital";
public static final String HOSPITAL_NAME = "name";
public static final String HOSPITAL_ADDRESS = "address";
public static final String HOSPITAL_CONTACT_NUMBER = "number";
}
private static final String SQL_CREATE_EMERGENCY_HOSPITAL = "CREATE TABLE "
+ Hospital.TABLE_NAME + " (" + Hospital._ID
+ " INTEGER PRIMARY KEY," + Hospital.HOSPITAL_NAME + TEXT_TYPE
+ COMMA_SEP + Hospital.HOSPITAL_ADDRESS + TEXT_TYPE + COMMA_SEP
+ Hospital.HOSPITAL_CONTACT_NUMBER + TEXT_TYPE + COMMA_SEP + " );";
private static final String SQL_DELETE_EMERGENCY_HOSPITAL = "DROP TABLE IF EXISTS "
+ Hospital.TABLE_NAME;
/**
* Handles database versions, create and populate tables in database
**/
public class DatabaseHelper extends SQLiteOpenHelper {
public static final int DATABASE_VERSION = 1;
public static final String DATABASE_NAME = "sample.db";
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
public void onCreate(SQLiteDatabase db) {
db.execSQL(SQL_CREATE_EMERGENCY_HOSPITAL);
}
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// This database is only a cache for online data, so its upgrade
// policy is
// to simply to discard the whole database and start over
db.execSQL(SQL_DELETE_EMERGENCY_HOSPITAL);
onCreate(db);
}
}
public static DatabaseHelper getDbHandler() {
return dbHandler;
}
public void HospitalData() {
// Gets the data repository in write mode
SQLiteDatabase db = database.getWritableDatabase();
// Create a new map of values, where column names are the keys
ContentValues values = new ContentValues();
values.put(Hospital.HOSPITAL_NAME, "Bellevue Hospital Centre");
values.put(Hospital.HOSPITAL_ADDRESS, "Manhattan");
values.put(Hospital.HOSPITAL_CONTACT_NUMBER, "4356754");
// Insert the new row, returning the primary key value of the new row
long newRowId;
newRowId = db.insert(Hospital.TABLE_NAME, null, values);
}
}
在我的主要活动中是
private static DatabaseHelper dbHelper;
private SQLiteDatabase db;
dbHelper = DbContract.getDbHandler();
db = dbHelper.getReadableDatabase();
<provider
android:name=".database.DbContract"
android:authorities="com.demo" >
</provider>
我的清单上写着
private static DatabaseHelper dbHelper;
private SQLiteDatabase db;
dbHelper = DbContract.getDbHandler();
db = dbHelper.getReadableDatabase();
<provider
android:name=".database.DbContract"
android:authorities="com.demo" >
</provider>
谢谢您的mainfest文件具有名为“.database.DbContract”的提供者标记。这是导致出现异常的根本原因。 Provider标记用于声明内容提供者,name标记可以是内容提供者的包名称,但在您的情况下,它不是任何内容提供者子类的名称。因此得到类强制转换异常。 请阅读内容提供商的基本知识:
希望它能帮助你 你有什么错误吗?实际上你写错了查询。。。首先你必须纠正它…我已经添加了日志,你能检查一下吗