在android studio中,没有创建sqlite数据库,但我的代码中没有错误

时间:2016-10-06 12:17:36

标签: android sqlite

起初我收到一条消息“无法构建到本地8600调试器”然后有人说要将jre版本从7更新到8,然后我收到一条消息,例如“设备与磁盘上的本地构建不匹配”然后我的代码运行时没有任何消息,但是没有创建数据库。这是我的主要类,

package com.kaizen.sqlitedatabase;

import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

/**
 * Created by Naveen on 05-10-2016.
 */

public class Sqlite extends SQLiteOpenHelper{
    public static final String DATABASENAME="STUDENTS_DATABASE.db";
    public static final String TABLENAME="STUDENTS_MARKS";
    public static final String COL_1="ID";
    public static final String COL_2="STUDENT_NAME";
    public static final String COL_3="SUR_NAME";
    public static final String COL_4="MARKS";

    public Sqlite(Context context) {
        super(context, DATABASENAME, null, 1);
        SQLiteDatabase db=this.getWritableDatabase();
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("CREATE TABLE " + TABLENAME +" (ID INTEGER PRIMARY KEY AUTOINCREMENT,NAME TEXT,SURNAME TEXT,MARKS INTEGER) ");

    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        db.execSQL("DROP TABLE IF EXISTS "+TABLENAME);
        onCreate(db);

    }
}

这是我的sqlite openhelper的子类,请有人帮助我

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.kaizen.sqlitedatabase.MainActivity"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="60dp"
        android:orientation="horizontal">

        <TextView
            android:layout_width="150dp"
            android:layout_height="match_parent"
            android:text="Name"
            android:id="@+id/name" />
        <EditText
            android:layout_width="fill_parent"
            android:layout_height="match_parent"
            android:layout_marginLeft="10dp"
            android:id="@+id/edt_name" />


    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="60dp"
        android:orientation="horizontal">

        <TextView
            android:layout_width="150dp"
            android:layout_height="match_parent"
            android:id="@+id/surName"
            android:text="Sur Name" />
        <EditText
            android:layout_width="fill_parent"
            android:layout_height="match_parent"
            android:layout_marginLeft="10dp"
            android:id="@+id/edt_surName" />


    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="60dp"
        android:orientation="horizontal">

        <TextView
            android:layout_width="150dp"
            android:layout_height="match_parent"
            android:id="@+id/marks"
            android:text="Marks" />
        <EditText
            android:layout_width="fill_parent"
            android:layout_height="match_parent"
            android:layout_marginLeft="10dp"
            android:id="@+id/edt_marks" />


    </LinearLayout>

    <Button
        android:text="Add"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/button"
        android:layout_marginTop="60dp"
        />

</LinearLayout>

这是我的xml文件

{{1}}

4 个答案:

答案 0 :(得分:0)

使用此查询创建表格,我认为问题出在您的查询中

String CREATE_TABLE_CITY = "CREATE TABLE " + TABLE_NAME + "(" + ID + " INTEGER PRIMARY KEY , " + NAME+ " TEXT, " + SURNAMENAME+ " TEXT, " + MARKS+ " INTEGER )";

 mDatabase.execSQL(CREATE_TABLE_CITY);

答案 1 :(得分:0)

你想检查你的数据库是否创建然后去...

工具&gt; Android&gt; Android设备监视器

点击左侧的设备。

转到文件资源管理器(右侧的其中一个选项卡),转到/ data / data / databases

只需单击即可选择数据库。

答案 2 :(得分:0)

在新版android studio中,您可以检查是否创建数据库。

点击:  查看>工具窗口>文件资源管理器>数据>数据>查找您的应用程序名称>数据库

答案 3 :(得分:0)

实际上,SQLiteOpenHelper只是通过创建对象而不会调用onCreate方法。

  • 每当您尝试访问数据库以检索或插入数据时,如果尚未创建数据库,它将首次调用onCreate方法。
  • 如果数据库可用,但版本低于您提供的版本,则将调用onUpgrade方法。

因此,请尝试运行一些查询,然后检查数据库是否已创建。

数据库创建的位置为 查看->工具窗口->设备文件资源管理器->数据->数据->->数据库