Android SQLite(1)没有这样的表:查看错误

Android SQLite(1)没有这样的表:查看错误,android,sqlite,Android,Sqlite,我知道这个问题有一些答案,但我似乎仍然无法让我的答案发挥作用。我收到错误信息 04-17 11:35:35.086 2437-2437/com.chris.cv10aajproject E/SQLiteLog﹕ (1) AUTOINCREMENT is only allowed on an INTEGER PRIMARY KEY 04-17 11:35:35.090 2437-2437/com.chris.cv10aajproject E/SQLiteLog﹕ (1) no s

我知道这个问题有一些答案,但我似乎仍然无法让我的答案发挥作用。我收到错误信息

04-17 11:35:35.086    2437-2437/com.chris.cv10aajproject E/SQLiteLog﹕ (1)   
AUTOINCREMENT is only allowed on an INTEGER PRIMARY KEY
04-17 11:35:35.090    2437-2437/com.chris.cv10aajproject E/SQLiteLog﹕ (1)
no such table: viewing
我的代码如下所示:

private static final String CREATE_TABLE = "CREATE TABLE " + TABLE_NAME + " (" + UID + "INTEGER PRIMARY KEY AUTOINCREMENT, " + POST_CODE + " VARCHAR(255)," +FIRST_LINE+" VARCHAR(255)," + TOWN + "  VARCHAR(255)  " +
            "" + COUNTY + " VARCHAR(255) ," + ROOM_NO + " INTEGER ," + ASKING_PRICE + " INTEGER , " + CURRENT_OFFER + " INTEGER , " + AGREED_PRICE + "INTEGER , " + AGENT_NAME + " VARCHAR(255)," +
            "" + AGENT_PHO_NUM + " VARCHAR(255), " + ESTATE_AGENT_NAME + " VARCHAR(255), " + REFURB_COST + " VARCHAR(255), " + TIME_OF_APPOINTMENT + " VARCHAR(255));";
我的适配器中有一个由我的应用程序调用的
InsertData
方法

public long insertData(String posCode,String firstLine ,String town,String county, int roomNum,
                       int askingPrice, int currentOffer, int agreedPrice, String agentName,
                       String agentPhone,String estateAgentNam, int refurb, String Time)
{

    SQLiteDatabase db = helper.getWritableDatabase();
    ContentValues contentValues = new ContentValues();
    contentValues.put(DbHelper.POST_CODE, posCode);
    contentValues.put(DbHelper.FIRST_LINE,firstLine);
    contentValues.put(DbHelper.TOWN,town);
    contentValues.put(DbHelper.COUNTY, county);
    contentValues.put(DbHelper.ROOM_NO,roomNum);
    contentValues.put(DbHelper.ASKING_PRICE,askingPrice);
    contentValues.put(DbHelper.CURRENT_OFFER, currentOffer);
    contentValues.put(DbHelper.AGREED_PRICE,agreedPrice);
    contentValues.put(DbHelper.AGENT_NAME,agentName);
    contentValues.put(DbHelper.AGENT_PHO_NUM, agentPhone);
    contentValues.put(DbHelper.ESTATE_AGENT_NAME,estateAgentNam);
    contentValues.put(DbHelper.REFURB_COST,refurb);
    contentValues.put(DbHelper.TIME_OF_APPOINTMENT,Time);

   long id = db.insert(DbHelper.TABLE_NAME, null, contentValues);
    return id ;
我的on create方法如下所示

  public void onCreate(SQLiteDatabase db) {

        try {
            db.execSQL(CREATE_TABLE);
            Message.message(context, "onCreate called");

        } catch (SQLException e) {
            Message.message(context, ""+e);
        }
    }
CREATE_TABLE
是一个常量,如下所示:

private static final String CREATE_TABLE = "CREATE TABLE " + TABLE_NAME + " (" + UID + "INTEGER PRIMARY KEY AUTOINCREMENT, " + POST_CODE + " VARCHAR(255)," +FIRST_LINE+" VARCHAR(255)," + TOWN + "  VARCHAR(255)  " +
            "" + COUNTY + " VARCHAR(255) ," + ROOM_NO + " INTEGER ," + ASKING_PRICE + " INTEGER , " + CURRENT_OFFER + " INTEGER , " + AGREED_PRICE + "INTEGER , " + AGENT_NAME + " VARCHAR(255)," +
            "" + AGENT_PHO_NUM + " VARCHAR(255), " + ESTATE_AGENT_NAME + " VARCHAR(255), " + REFURB_COST + " VARCHAR(255), " + TIME_OF_APPOINTMENT + " VARCHAR(255));";

如果您有任何建议,我们将不胜感激

您需要在
UID
INTEGER

所以改变

 " (" + UID + "INTEGER PRIMARY KEY AUTOINCREMENT,

因此,将CREATETABLE语句重写为

private static final String CREATE_TABLE = "CREATE TABLE " + TABLE_NAME + " (" + UID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + POST_CODE + " VARCHAR(255)," +FIRST_LINE+" VARCHAR(255)," + TOWN + "  VARCHAR(255)  " +
            "" + COUNTY + " VARCHAR(255) ," + ROOM_NO + " INTEGER ," + ASKING_PRICE + " INTEGER , " + CURRENT_OFFER + " INTEGER , " + AGREED_PRICE + " INTEGER , " + AGENT_NAME + " VARCHAR(255)," +
            "" + AGENT_PHO_NUM + " VARCHAR(255), " + ESTATE_AGENT_NAME + " VARCHAR(255), " + REFURB_COST + " VARCHAR(255), " + TIME_OF_APPOINTMENT + " VARCHAR(255));";

您需要在
UID
INTEGER

所以改变

 " (" + UID + "INTEGER PRIMARY KEY AUTOINCREMENT,

因此,将CREATETABLE语句重写为

private static final String CREATE_TABLE = "CREATE TABLE " + TABLE_NAME + " (" + UID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + POST_CODE + " VARCHAR(255)," +FIRST_LINE+" VARCHAR(255)," + TOWN + "  VARCHAR(255)  " +
            "" + COUNTY + " VARCHAR(255) ," + ROOM_NO + " INTEGER ," + ASKING_PRICE + " INTEGER , " + CURRENT_OFFER + " INTEGER , " + AGREED_PRICE + " INTEGER , " + AGENT_NAME + " VARCHAR(255)," +
            "" + AGENT_PHO_NUM + " VARCHAR(255), " + ESTATE_AGENT_NAME + " VARCHAR(255), " + REFURB_COST + " VARCHAR(255), " + TIME_OF_APPOINTMENT + " VARCHAR(255));";

由于
CREATE table SQL
命令错误,因此未创建表

您应该在
列名
列类型

TABLE_NAME + " (" + UID + " INTEGER PRIMARY KEY AUTOINCREMENT, // add space before INTEGER PRIMARY KEY AUTOINCREMENT
更正:
由于
CREATE table SQL
命令错误,因此未创建表

您应该在
列名
列类型

TABLE_NAME + " (" + UID + " INTEGER PRIMARY KEY AUTOINCREMENT, // add space before INTEGER PRIMARY KEY AUTOINCREMENT
更正:
您需要添加空间,但在城镇中缺少逗号,因此请执行以下操作:

private static final String CREATE_TABLE = "CREATE TABLE " + TABLE_NAME + " (" + UID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + POST_CODE + " VARCHAR(255)," + FIRST_LINE + " VARCHAR(255)," + TOWN + "  VARCHAR(255),  "  + COUNTY + " VARCHAR(255) ," + ROOM_NO + " INTEGER ," + ASKING_PRICE + " INTEGER , " + CURRENT_OFFER + " INTEGER , " + AGREED_PRICE + "INTEGER , " + AGENT_NAME + " VARCHAR(255)," + AGENT_PHO_NUM + " VARCHAR(255), " + ESTATE_AGENT_NAME + " VARCHAR(255), " + REFURB_COST + " VARCHAR(255), " + TIME_OF_APPOINTMENT + " VARCHAR(255));";

您需要添加空间,但在城镇中缺少逗号,因此请执行以下操作:

private static final String CREATE_TABLE = "CREATE TABLE " + TABLE_NAME + " (" + UID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + POST_CODE + " VARCHAR(255)," + FIRST_LINE + " VARCHAR(255)," + TOWN + "  VARCHAR(255),  "  + COUNTY + " VARCHAR(255) ," + ROOM_NO + " INTEGER ," + ASKING_PRICE + " INTEGER , " + CURRENT_OFFER + " INTEGER , " + AGREED_PRICE + "INTEGER , " + AGENT_NAME + " VARCHAR(255)," + AGENT_PHO_NUM + " VARCHAR(255), " + ESTATE_AGENT_NAME + " VARCHAR(255), " + REFURB_COST + " VARCHAR(255), " + TIME_OF_APPOINTMENT + " VARCHAR(255));";

感谢各位,我做了你们建议的更改,现在我得到了一个不同的错误代码(虽然它现在创建了数据库),所以我想这可能是我的一个插入。新的错误消息是04-17 12:12:04.710 2730-2730/com.chris.cv10aaj项目E/SQLiteLog﹕ (1) 靠近“county”:语法错误04-17 12:12:04.718 2730-2730/com.chris.cv10aaje/SQLiteLog﹕ (1) 没有此类表格:viewing@BeginnerJavaDev完成此操作后,您必须卸载应用程序并再次安装一个新的.apk builtBtw。我只想对所有帮助表示感谢。伙计们非常感谢,响应时间非常快:D@BeginnerJavaDev我们总是在这里帮助你!!!!感谢您的回复!!!!感谢各位,我做了你们建议的更改,现在我得到了一个不同的错误代码(虽然它现在创建了数据库),所以我想这可能是我的一个插入。新的错误消息是04-17 12:12:04.710 2730-2730/com.chris.cv10aaj项目E/SQLiteLog﹕ (1) 靠近“county”:语法错误04-17 12:12:04.718 2730-2730/com.chris.cv10aaje/SQLiteLog﹕ (1) 没有此类表格:viewing@BeginnerJavaDev完成此操作后,您必须卸载应用程序并再次安装一个新的.apk builtBtw。我只想对所有帮助表示感谢。伙计们非常感谢,响应时间非常快:D@BeginnerJavaDev我们总是在这里帮助你!!!!感谢您的回复!!!!为Town在VARCHAR后添加逗号,如图所示。为Town在VARCHAR后添加逗号,如图所示。