Java SQLite创建表不工作,没有任何错误
我试图创建一个数据库并在其中创建一个表。正在创建数据库,但未创建表。它未显示任何错误,也无法将值插入其中。我想创建一个表并插入从用户接收的数据,但数据无法添加到数据库,也未显示任何错误。代码如下:Java SQLite创建表不工作,没有任何错误,java,android,database,sqlite,Java,Android,Database,Sqlite,我试图创建一个数据库并在其中创建一个表。正在创建数据库,但未创建表。它未显示任何错误,也无法将值插入其中。我想创建一个表并插入从用户接收的数据,但数据无法添加到数据库,也未显示任何错误。代码如下: public DataBaseHelper(Context context) { super(context, DATABASE_NAME, null, version); } @Override public void onCreate(SQLiteData
public DataBaseHelper(Context context) {
super(context, DATABASE_NAME, null, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
String q = "CREATE TABLE IF NOT EXISTS " + TABLE_NAMETRY + "(" +
COL_ID + " INTEGER PRIMARY KEY, " + COL_NAME + " TEXT, " + COL_PHONE + " TEXT " + ")";`enter code here`
db.execSQL(q);
}
@Override
public void onUpgrade(SQLiteDatabase db, int i, int i1) {
db.execSQL("DROP table if exist "+TABLE_NAMETRY);
onCreate(db);
}
public boolean insertData(String name,String no)
{
SQLiteDatabase db = this.getWritableDatabase();
ContentValues contentvalue = new ContentValues();
contentvalue.put(COL_NAME,name);
contentvalue.put(COL_PHONE,no);
long result = db.insert(TABLE_NAMETRY,null,contentvalue);
if(result==-1)
return false;
else
return true;
}
public class MainActivity extends AppCompatActivity {
DataBaseHelper mydb;
EditText name,no;
Button b1;
TextView t1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mydb=new DataBaseHelper(this);
name=(EditText)findViewById(R.id.name);
no=(EditText)findViewById(R.id.no);
t1=(TextView)findViewById(R.id.t1);
b1=(Button)findViewById(R.id.b1);
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(MainActivity.this, "Adding Data", Toast.LENGTH_SHORT).show();
AddData();
}
});
}
public void AddData()
{
boolean check= mydb.insertData(name.getText().toString(),no.getText().toString());
if(check==true)
t1.setText("data submitted");
else
t1.setText("data not submitted");
}
}
公共类MainActivity扩展了AppCompatActivity{
数据库助手mydb;
编辑文本名称,否;
按钮b1;
文本视图t1;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mydb=新数据库助手(此);
name=(EditText)findViewById(R.id.name);
否=(EditText)findViewById(R.id.no);
t1=(TextView)findViewById(R.id.t1);
b1=(按钮)findViewById(R.id.b1);
b1.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
Toast.makeText(MainActivity.this,“添加数据”,Toast.LENGTH_SHORT.show();
AddData();
}
});
}
public void AddData()
{
布尔检查=mydb.insertData(name.getText().toString(),no.getText().toString());
如果(检查==true)
t1.setText(“提交的数据”);
其他的
t1.setText(“未提交的数据”);
}
}
帮助程序很可能正在创建表(onCreate),然后删除它(onUpgrade) 在这里,我如何创建我的助手,请注意数据库版本,因为在执行(onUpgrade)时它很重要
public class DatabaseOpenHelper extends SQLiteOpenHelper {
private final static String databaseName = "Your_DB_Name";
private final static int databaseVersion = 13;
DatabaseOpenHelper(Context context) {
super(context, databaseName, null, databaseVersion);
}
@Override
public void onCreate(SQLiteDatabase db) { // Do Create Your Table Here }
@Override
public void onUpgrade(SQLiteDatabase db, int Old_Version, int New_Version) { //Delete Your tables here if they exists}
尝试使用方法
insertOrThrow
代替insert
,与db.insert(TABLE\u NAMETRY,null,contentvalue)
对齐。并说出您得到的信息。db.execSQL(“如果存在,则删除表”+表名try)代码>它实际上是存在的。