【发布时间】:2018-09-30 20:58:49
【问题描述】:
我试图让这个应用程序通过 SQLiteDATABASE 向数据库添加值并最终显示它们,但是每当我运行这个应用程序并添加一些数据时,我都会为成功干杯,但是当我签入设备管理器时通过工作室,我得到了这个空数据库...没有在其中创建表... 我已经尝试了很多来完成这项工作,我认为这是因为没有调用 onCreate 方法..所以我尝试删除以前的数据库并重新开始..但我仍然得到空数据库... logcat 看起来也不错……
请帮帮我……
这是我的 DBHelper 类
package com.example.ankur.login;
import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DBAdapter extends SQLiteOpenHelper {
public static final String DB_name="seminar2.db";
public static final String TABLE_name="seminar";
public static final String col1="Date";
public static final String col2="Department";
public static final String col3="Topic";
public static final String col4="Speaker";
public static final String col5="No_of_Students";
public static final String col6="Guests";
public static final String col7="Organisation";
public DBAdapter(Context context) {
super(context, DB_name, null, 1);
SQLiteDatabase db=this.getWritableDatabase();
}
@Override
public void onCreate(SQLiteDatabase db) {
String query ="create table "+TABLE_name+" (SEM_ID INTEGER PRIMARY KEY AUTOINCREMENT, "+col1+" date, "+col2+" varchar(15), "+col3+" varchar(15), "+col4+" varchar(15), "+col5+" NUMBER(100), "+col6+" varchar(15), "+col7+ " varchar(15) "+" );";
db.execSQL(query);
}
@Override
public void onUpgrade(SQLiteDatabase db, int i, int i1) {
db.execSQL("DROP TABLE IF EXISTS "+TABLE_name);
onCreate(db);
}
public boolean insetDATA(String date,String dept,String topic,String fkin_guests,String orgy,String speakr,int no){
SQLiteDatabase db=this.getWritableDatabase();
ContentValues cv=new ContentValues();
cv.put(col1,date);
cv.put(col2,dept);
cv.put(col3,topic);
cv.put(col4,speakr);
cv.put(col5,no);
cv.put(col6,fkin_guests);
cv.put(col7,orgy);
long result=db.insert(TABLE_name,null,cv);
if(result==-1)
return false;
else
return true;
}
}
这是我的活动添加
package com.example.ankur.login;
import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class ADD extends AppCompatActivity{
DBAdapter myDB;
EditText date,topic,dept,speaker,guests,org,students;
Button addy;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add);
myDB=new DBAdapter(this);
date=findViewById(R.id.ID_date);
topic=findViewById(R.id.ID_topic);
dept=findViewById(R.id.ID_Dept);
speaker=findViewById(R.id.ID_Speaker);
guests=findViewById(R.id.ID_Guests);
org=findViewById(R.id.ID_Org);
students=findViewById(R.id.ID_No);
addy=findViewById(R.id.BUTTON_Add);
add();
}
public void add()
{
addy.setOnClickListener(
new View.OnClickListener(){
@Override
public void onClick(View view) {
boolean isInserted=myDB.insetDATA(date.getText().toString(),dept.getText().toString(),topic.getText().toString(),guests.getText().toString(),org.getText().toString(),speaker.getText().toString(),Integer.parseInt(students.getText().toString()));
if(isInserted)
Toast.makeText(ADD.this,"Success",Toast.LENGTH_LONG).show();
else
Toast.makeText(ADD.this,"FAIL!!",Toast.LENGTH_LONG).show();
}
}
);
}
}
【问题讨论】:
-
你怎么能说数据库没有被创建?你是什么意思我 Logcat 看起来也不错。?你能详细说明这两个短语吗
-
DB 已创建但它为空...我添加了一个查询以在其中创建一个表...但数据库仍然为空...logcat 也没有错误...我意味着其中似乎没有任何可疑之处...如果您愿意,我也可以添加...