java - SQLite 数据库没有被创建并且没有错误出现

标签 java android database eclipse sqlite

在没有出现错误的情况下,不会创建 SQLite 数据库。

我已经检查了 android/data 文件夹并尝试了很多事情。我正在使用 eclipse 。请有人帮助我并提前致谢。

我的Database.java文件是这样的:

public class Database extends SQLiteOpenHelper {

    public static final String DATABASE_NAME="Table.db";
    public static final String TABLE_NAME="table_one";
    public static final String COL_1="ID";
    public static final String COL_2="NAME";
    public static final String COL_3="SURNAME";
    public static final String COL_4="MARKS";

    public Database(Context context) {
        super(context, TABLE_NAME, null, 1);
        // TODO Auto-generated constructor stub
    }

    @Override
    public void onCreate(SQLiteDatabase arg) {
        // TODO Auto-generated method stub
        arg.execSQL("create table "+TABLE_NAME+"(ID INTEGER PRIMARY KEY AUTOINCREMENT, NAME TEXT, SURNAME TEXT, MARKS INTEGER)");
    }

    @Override
    public void onUpgrade(SQLiteDatabase arg, int arg1, int arg2) {
        // TODO Auto-generated method stub
        arg.execSQL("DROP TABLE IF EXISTS "+TABLE_NAME);
        onCreate(arg);
    }

    public boolean insert(String name, String sname, String marks)
    {
        SQLiteDatabase arg=this.getWritableDatabase();
        ContentValues content=new ContentValues();
        content.put(COL_2, name);
        content.put(COL_3, sname);
        content.put(COL_4, marks);
        long result=arg.insert(TABLE_NAME, null, content);
        if(result==-1)
            return false;
        else
        return true;

    }
}

MainActivity.java 是:

public class MainActivity extends Activity {

    Database myDb;
    EditText name, sname, marks;
    Button add;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        myDb = new Database(this);
        name = (EditText) findViewById(R.id.ename);
        sname = (EditText) findViewById(R.id.esname);
        marks = (EditText) findViewById(R.id.emarks);
        add = (Button) findViewById(R.id.button1);
        addData();
    }

    public void addData() {
        add.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                boolean isInserted = myDb.insert(name.getText().toString(), sname.getText().toString(), marks.getText().toString());
                if (isInserted == true)
                    Toast.makeText(MainActivity.this, "Data is inserted", Toast.LENGTH_LONG).show();
                else
                    Toast.makeText(MainActivity.this, "Data is NOT inserted", Toast.LENGTH_LONG).show();
            }
        });
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}

最佳答案

public Database(Context context)
    {
        super(context, DATABASE_NAME , null, 1); // Your Mistake
    }

像这样创建你的表:

String CREATE_TABLE = "CREATE TABLE " + GROUP_CHAT_MESSAGE_TABLE_NAME + "("
                + ID + " INTEGER PRIMARY KEY," 
                + NAME + " TEXT,"
                + SURNAME + " TEXT ,"                                   
                + MARKS + " INTEGER" + ")";

db.execSQL(CREATE_TABLE);

关于java - SQLite 数据库没有被创建并且没有错误出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32762913/

相关文章:

java - VisualVM 不显示调用 CPU 性能分析的任何方法

java - 获取异常 java.lang.NoSuchMethodError : org. apache.neethi.Constants.isPolicyElement

java - 了解 JPA 序列生成器

mysql - 设计包含父实体和子实体的数据库时应考虑哪些因素?

sql - 如何在 Oracle 中创建一个临时表作为另一个表的副本?

mysql - SQL检索在另一个表中没有关系的字段

java - JFrame 中的 NullPointerException

android - 确定项目是否在 RecyclerView 上可见

java - Java 对象在 Android 的内存中是如何布局的?

android - 如何使隐含的 Intent 明确?