Android 没有这样的表SQLite错误:email
错误:03-26 23:19:58.913 12137-12137/com.example.johnwalls.projet E/SQLiteLog:1没有这样的表:email1 03-26 23:19:58.913 12137-12137/com.example.johnwalls.projet E/SQLiteDatabase:插入dem=hdhbbdjd description=demande source时出错=bechir@gmail.com inboxfrugment.java DB.javaAndroid 没有这样的表SQLite错误:email,android,sqlite,android-fragments,android-sqlite,Android,Sqlite,Android Fragments,Android Sqlite,错误:03-26 23:19:58.913 12137-12137/com.example.johnwalls.projet E/SQLiteLog:1没有这样的表:email1 03-26 23:19:58.913 12137-12137/com.example.johnwalls.projet E/SQLiteDatabase:插入dem=hdhbbdjd description=demande source时出错=bechir@gmail.com inboxfrugment.java DB
你想达到什么目的?你期望得到什么?你得到了什么?包括错误信息?你还尝试了什么?你认为是什么引起的?为什么你需要为它提出一个新问题?为什么你的问题与其他问题不同,这里有类似的问题吗?我怀疑您在运行应用程序后添加了email1表,并且该表没有被创建,这是因为常见的误解是,每当您创建SQLiteOpenHelper的Database helper子类实例(即DB.java)时,数据库帮助器的onCreate方法就会运行 “onCreate”方法仅在创建数据库时运行一次 您有三个选项来解决此问题:- 删除应用程序的数据,然后重新运行应用程序 卸载应用程序并重新运行应用程序 在您的情况下,由于onUpgrade方法将删除表,然后调用onCreate,以增加数据库版本号,例如更改private static final int database_version=1;到私有静态最终int数据库_VERSION=2;然后重新运行应用程序
换句话说,调用onCreate of helper时的副本…我做了2和3,现在可以工作了,非常感谢MikeT
package com.example.johnwalls.projet;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import static com.example.johnwalls.projet.R.id.pr;
/**
* A simple {@link Fragment} subclass.
*/
public class InboxFragment extends Fragment {
private Button sendB;
private EditText d;
private EditText des;
private DB base;
public InboxFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
base=new DB(getActivity());
final View view = inflater.inflate(R.layout.fragment_inbox, container, false);
TextView text2 = view.findViewById(R.id.in);//Find textview Id
String getArgument = getArguments().getString("main");
text2.setText(getArgument);
Button button = (Button) view.findViewById(R.id.log);
button.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
String getArgument = getArguments().getString("main");
EditText d= (EditText) view.findViewById(R.id.dem);
EditText des=(EditText) view.findViewById(R.id.desc);
String dem=d.getText().toString();
String desc=des.getText().toString();
Email e=new Email();
e.setSource(getArgument);
e.setDem(dem);
e.setDescription(desc);
base.insertEmail(e);
Toast.makeText(getActivity(), "Email Envoyé", Toast.LENGTH_SHORT).show();
}
});
return view;
}
}
package com.example.johnwalls.projet;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabaseCorruptException;
import android.database.sqlite.SQLiteOpenHelper;
/**
* Created by John Walls on 04-Mar-18.
*/
public class DB extends SQLiteOpenHelper {
private static final int DATABASE_VERSION=1;
private static final String DB_nom="bef.db";
private static final String table_admin="admin";
private static final String table_email1="email1";
private static final String col_source="source";
private static final String col_description="description";
private static final String col_dem="dem";
private static final String col_cin="cin";
private static final String col_nom="nom";
private static final String col_pren="pren";
private static final String col_email="email";
private static final String col_password="password";
private static final String col_age="age";
SQLiteDatabase db;
private static final String creation_admin="create table admin (cin integer primary key,"+"nom text not null ,pren text not null ,email text not null,password text not null ,age integer not null);";
private static final String creation_email="create table email1 (source text primary key,"+"dem text not null ,description text not null);";
public DB(Context context) {
super(context,DB_nom, null,DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(creation_admin);
db.execSQL(creation_email);
this.db=db;
}
public void insertEmail(Email e)
{
db=this.getWritableDatabase();
ContentValues values=new ContentValues();
values.put(col_source,e.getSource());
values.put(col_dem,e.getDem());
values.put(col_description,e.getDescription());
db.insert(table_email1,null,values);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
String query ="DROP TABLE IF EXISTS "+table_admin;
String query2="DROP TABLE IF EXISTS "+table_email1;
db.execSQL(query);
db.execSQL(query2);
this.onCreate(db);
}
}