sqlite Android数据库不创建表中的列[重复]

n3schb8v  于 2023-06-23  发布在  SQLite
关注(0)|答案(1)|浏览(176)

此问题已在此处有答案

When does SQLiteOpenHelper onCreate() / onUpgrade() run?(15个回答)
14天前关闭
我有一个数据库,其中有两个表,我想使用。我对第一个表没有问题,但是当我有一个数据库,其中有两个我想要的表时,我在处理第一个表时没有问题,但是当我在第二个表中插入数据时,我得到了“表没有命名的clumn”错误。
这是我的databaseHelper

public class DatabaseHelper extends SQLiteOpenHelper 
{
    public static final String TABLE_NAME = "bosors";
    public static final String _ID = "_id";
    public static final String index = "nindex";
 
  
  
    public static final String DATE = "date";
    
    
    
    static final String DB_NAME = "brs.DB";
    
    static final int DB_VERSION = 1;
    
    private static final String CREATE_TABLE = "create table " + TABLE_NAME + "(" + _ID
    + " INTEGER PRIMARY KEY AUTOINCREMENT, " + index + " TEXT NOT NULL);";
    
     
    
    private static final String CREATE_TABLE2 = "create table " + "t67675656072510693" + "(" + _ID
    + " INTEGER PRIMARY KEY AUTOINCREMENT, " + DATE + " TEXT NOT NULL);";
    
    
    @Override
    public void onCreate(SQLiteDatabase p1)
    {p1.execSQL(CREATE_TABLE);
    
    p1.execSQL(CREATE_TABLE2);
    
    // TODO: Implement this method
    }

    @Override
    public void onUpgrade(SQLiteDatabase p1, int p2, int p3)
    {p1.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
        p1.execSQL("DROP TABLE IF EXISTS " + "t67675656072510693");

    onCreate(p1);
        // TODO: Implement this method
    }

  
    
    
    
    
    public DatabaseHelper(Context context) {
        super(context, DB_NAME, null, DB_VERSION);
        
}

}

这是我的insert

public void insert(String data) {
        ContentValues contentValue = new ContentValues();
        contentValue.put(DatabaseHelper.index, data);
        database.insert(DatabaseHelper.TABLE_NAME, null, contentValue);
    }

从这里,我将数据发送到insert方法:

if(token[i].equals(nmdName.toString())){
    dbm.insertH("t"+nmdIndex,date);}

当我向列发送数据时,我得到这个错误:

(1)表t67675656072510693在“INSERT INTO t67675656072510693(date)VALUES(?))"

我试图引入一个单独的DatabaseHelper和DatabaseManager,但我再次遇到了同样的问题。

q35jwt9p

q35jwt9p1#

  • 验证create sql是否在onCreate方法中执行而未记录任何错误。如果已经创建了表,则可能会失败。在这种情况下,您需要删除表或执行更新表SQL语句。
  • 您可以使用Android Studio或其他工具打开数据库并确认表的实际创建。
  • 卸载应用程序或清除应用程序数据。

相关问题