Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 数据库创建无法正常运行_Android_Sqlite_Android Sqlite - Fatal编程技术网

Android 数据库创建无法正常运行

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

我是一名windows phone开发者,不熟悉android数据库, 我无法在android中创建本地数据库 我无法理解我做错了什么

我将在我的数据库中存储一些数据,稍后将获取这些数据以填充我的listview

目前我无法创建示例数据库,下面是我的代码

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标记可以是内容提供者的包名称,但在您的情况下,它不是任何内容提供者子类的名称。因此得到类强制转换异常。 请阅读内容提供商的基本知识:


希望它能帮助你

你有什么错误吗?实际上你写错了查询。。。首先你必须纠正它…我已经添加了日志,你能检查一下吗