如何删除sqlite中返回sqlite的错误:错误代码= 1,味精=无此类表:DetailsCustomer [英] How to remove an error in sqlite that says sqlite returned: error code = 1, msg = no such table: DetailsCustomer

查看:92
本文介绍了如何删除sqlite中返回sqlite的错误:错误代码= 1,味精=无此类表:DetailsCustomer的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

public class DBAdapter {
			
	public static final String COLUMN_ID = "ID";
	public static final String COLUMN_NAME = "NAME";
	public static final String COLUMN_SURNAME = "SURNAME";
	public static final String COLUMN_DATE_OF_BIRTH = "DateOfBirth";
	public static final String COLUMN_ADDRESS = "HomeAddress";
	public static final String COLUMN_EMAIL = "EmailNO";
	public static final String COLUMN_PHONE_NUMBER = "PhoneNumber";
	public static final String COLUMN_CITY = "City";
	public static final String COLUMN_PTYE_PAYMENT = "TypePayment";
	public static final String COLUMN_SHIPPING_TYPE = "ShippingType";
	public static final String COLUMN_CARD_NUMBER = "CardNumber";	
	public static final String COLUMN_username = "usernames";
	public static final String COLUMN_Password = "Passwords";	
	
	public static final String TAG = "DBAdapter";
		
    static final String DATABASE_NAME = "SuperComputers.db";
    static final String USERS_TABLE = "DetailsCustomer";
    static final int DATABASE_VERSION = 3;
	
private final Context context;

private DatabaseHelper DBHelper;
private SQLiteDatabase db;


public DBAdapter (Context ctx) 
{
	this.context=ctx;
	DBHelper = new DatabaseHelper(context);
}

private static class DatabaseHelper extends SQLiteOpenHelper

{
	DatabaseHelper(Context context) {
	
	super (context,DATABASE_NAME,null,DATABASE_VERSION);
			
	}
	
@Override
 public void onCreate(SQLiteDatabase db)
{
	try {
		  //db.execSQL(DATABASE_CREATE);		
		 db.execSQL("CREATE TABLE "+ USERS_TABLE + 
				    "("+ COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
				    COLUMN_NAME + " TEXT, " + COLUMN_SURNAME +" TEXT, " +COLUMN_DATE_OF_BIRTH+
				       " TEXT NOT NULL, " + COLUMN_ADDRESS + " TEXT, " + COLUMN_EMAIL +" TEXT, " + 
				       COLUMN_PHONE_NUMBER + " TEXT, "+ COLUMN_CITY + " TEXT, "+ COLUMN_PTYE_PAYMENT + " TEXT, " + COLUMN_CARD_NUMBER + " TEXT,"+ COLUMN_username + "TEXT ," + COLUMN_Password +" TEXT);");
		 
	} 
	   catch (SQLException e) {
		   e.printStackTrace();
		
	   }
	}
@Override
 public void onUpgrade(SQLiteDatabase db, int oldVersion , int newVesion) {

	Log.w(TAG, "Upgrading database from version " + oldVersion + "to"
			+ newVesion + ", which will destroy all old data");
	db.execSQL("DROP TABLE IF EXISTS " + USERS_TABLE);
	onCreate(db);

   } 
 }

//--open the database---

public DBAdapter open() throws SQLException
{
	db = DBHelper.getWritableDatabase();
	return this;
}

//--closes the database--
public void close()
{
	DBHelper.close();
}

public long insertRecord(String NAME, String SURNAME, String DateOfBirth,
         String HomeAddress,String EmailNO,  String PhoneNumber,  String City,
         long l, long m,String CardNumber,String usernames, String Passwords) {
    {
        ContentValues initialValues = new ContentValues();

        initialValues.put(COLUMN_NAME,NAME);
        initialValues.put(COLUMN_SURNAME,SURNAME);
        initialValues.put(COLUMN_DATE_OF_BIRTH,DateOfBirth);
        initialValues.put(COLUMN_ADDRESS,HomeAddress);
        initialValues.put(COLUMN_EMAIL,EmailNO);
        initialValues.put(COLUMN_PHONE_NUMBER,PhoneNumber);
        initialValues.put(COLUMN_CITY,City);
        initialValues.put(COLUMN_PTYE_PAYMENT,l);
        initialValues.put(COLUMN_SHIPPING_TYPE,m);
        initialValues.put(COLUMN_CARD_NUMBER,CardNumber);
        initialValues.put(COLUMN_username,usernames);
        initialValues.put(COLUMN_Password,Passwords);

        return db.insert(USERS_TABLE,null, initialValues);

       }

   }

public long insertRecord(String nAME, String sURNAME, String dateOfBirth,
        String homeAddress, String emailNO, String phoneNumber, String city,
        String string, String string2, String cardNumber, String usernames, String Passwords) {
    return 0;

    }




这是我的课.............................................. ........................




And here my class......................................................................

public void buttonRegister(View v)
  {
      Log.d("test", "adding");

      //get data from form
      EditText nametext = (EditText)findViewById(R.id.editTextName);
      EditText Surnametext = (EditText)findViewById(R.id.editTextSurname);
      EditText DOBtext = (EditText)findViewById(R.id.editTextDateBirth);
      EditText Adresstext = (EditText)findViewById(R.id.editTexAddress);
      EditText EmailNotext = (EditText)findViewById(R.id.editTeEmail);
      EditText Phonetext = (EditText)findViewById(R.id.editTexPhone);
      EditText Citytext = (EditText)findViewById(R.id.editTextCITY);
      Spinner PaymentSpinner = (Spinner)findViewById(R.id.spinnerPayment);
      Spinner ShippngMethod = (Spinner)findViewById(R.id.spinnerShipping);
      EditText CardNumbertext = (EditText)findViewById(R.id.editTextCARDNUMBER);
      EditText usernametext = (EditText)findViewById(R.id.txtusername);
      EditText pasword1 = (EditText)findViewById(R.id.editTexpassword);
    //  EditText repasword1 = (EditText)findViewById(R.id.editREPASSWORD);

      db.open();
      long id = db.insertRecord(nametext.getText().toString(), Surnametext.getText().toString(),
                                 DOBtext.getText().toString(),Adresstext.getText().toString(),EmailNotext.getText().toString(),
                                 Phonetext.getText().toString(), Citytext.getText().toString(),
                                 PaymentSpinner.getSelectedItemId(), ShippngMethod.getSelectedItemId(), CardNumbertext.getText().toString(),
                                 usernametext.getText().toString(), pasword1.getText().toString());

      db.close();

      nametext.setText("");
      Surnametext.setText("");
      DOBtext.setText("");
      Adresstext.setText("");
      EmailNotext.setText("");
      Phonetext.setText("");
      Citytext.setText("");
      PaymentSpinner.setId(0);
      ShippngMethod.setId(0);
      CardNumbertext.setText("");
      CardNumbertext.setText("");
      usernametext.setText("");
      pasword1.setText("");


      Toast.makeText(Regist.this,"Customer has been Registered",Toast.LENGTH_LONG).show();

     }

推荐答案

我认为您的问题是您第一次运行该代码时未在表中创建该列.因此,下一次您添加更多列时不会再创建表db,因此不会再创建表.卸载应用程序,然后再次运行.将再次创建数据库和表.
I think your problem is when you ran your code first time the column was not created in the table.So next time when you added more column to your table db is not created again so is your table. Uninstall your application and then run it again.Database and table will be created again.


这篇关于如何删除sqlite中返回sqlite的错误:错误代码= 1,味精=无此类表:DetailsCustomer的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆