2013-02-22 99 views
-2

我在尝试创建数据库时,此错误: 错误信息 输入代码在这里 2月2日至23日:08:46.780:E /数据库(32721):错误 插入电子邮件= af contact = 38 dob = 1/8/68 name = ex 02-23 02:08:46.780:E/Database(32721): android.database.sqlite.SQLiteException:no such table: profiles:,while编译:INSERT INTO配置文件 (email,contact,dob,name)VALUES(?,?,?,?); 02:02:08:46.780:E/Database(32721): atandroid.database.sqlite.SQLiteCompiledSql.native_compile(Native Method) 02-23 02:08:46.780:E/Database(32721):atSQLite数据库错误:找不到表格的Android

package a.vaccination; 

import android.content.ContentValues; 
import android.content.Context; 
import android.database.SQLException; 
import android.database.sqlite.SQLiteDatabase; 
import android.database.sqlite.SQLiteOpenHelper; 
import android.util.Log; 

public class datahandler { 

public static final String KEY_ROWID = "id"; 
public static final String KEY_name = "name"; 
public static final String KEY_dob = "dob"; 
public static final String KEY_contact = "contact"; 
public static final String KEY_email = "email"; 
private static final String TAG = "DBAdapter"; 

private static final String DATABASE_NAME = "profile"; 
private static final String DATABASE_TABLE = "profiles"; 
private static final int DATABASE_VERSION = 2; 

private static final String DATABASE_CREATE 
= "create table (id integer primary  keyautoincrement, " 
+ "name VARCHAR not null, dob date, contact VARCHAR, email VARCHAR);"; 
private final Context context; 

private DatabaseHelper DBHelper; 
private SQLiteDatabase db; 

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

protected static class DatabaseHelper extends SQLiteOpenHelper { 
    DatabaseHelper(Context context) { 
     super(context, DATABASE_NAME, null, DATABASE_VERSION); 
    } 

    @Override 
    public void onCreate(SQLiteDatabase db) { 
     // TODO Auto-generated method stub 
     try { 
      db.execSQL(DATABASE_CREATE); 
      //db = DBHelper.getWritableDatabase(); 
     } catch (SQLException e) { 
      e.printStackTrace(); 
     } 
    } 

    @Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
     // TODO Auto-generated method stub 
     Log.w(TAG, "Upgrading database from version " + oldVersion + " to " 
    + newVersion + ", which will destroy all old data"); 
     db.execSQL("DROP TABLE IF EXISTS contacts"); 
     onCreate(db); 
    } 
    } 

// ---opens the database--- 
public datahandler open() throws SQLException { 
    db = DBHelper.getWritableDatabase(); 
    return this; 
} 

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

// ---insert a record into the database--- 
public long insertRecord(String name, String dob, String contact, 
     String email) { 
    ContentValues initialValues = new ContentValues(); 
    initialValues.put(KEY_name, name); 
    initialValues.put(KEY_dob, dob); 
    initialValues.put(KEY_contact, contact); 
    initialValues.put(KEY_email, email); 
    return db.insert(DATABASE_TABLE, null, initialValues); 
} 

// ---updates a record--- 
public boolean updateRecord(long rowId, String name, String dob, 
     String contact, String email) { 
    ContentValues args = new ContentValues(); 
    args.put(KEY_name, name); 
    args.put(KEY_dob, dob); 
    args.put(KEY_contact, contact); 
    args.put(KEY_email, email); 
    return db.update(DATABASE_TABLE, args, KEY_ROWID + "=" + rowId, null) > 0; 
} 
} 
+1

发布您的代码。 – 323go 2013-02-22 20:44:50

+0

也附加我的数据库文件: – Saurabh 2013-02-22 20:45:29

+0

@Saurabh,请尽你最大的努力发布干净的问题,具有良好的格式和最好的英语知识。我现在解决了你的问题。另外,正如323go所说,发布一些代码。 – 2013-02-22 21:59:44

回答

1

您的查询的一个原因是尝试incorrent:

  • 你缺少的tablename
  • 你缺少键和自动增量

所以正确的它之间的空格之后:

String DATABASE_CREATE = "create table TableName(id integer primary key autoincrement, " 
+ "name VARCHAR not null, dob date, contact VARCHAR, email VARCHAR)"; 

现在,它会工作。

+0

@ sajmon_d感谢您的帮助,但我仍然面临error02-24 23:56:04.939:电子数据库(8203) = contact = dob = name = – Saurabh 2013-02-24 18:41:43

+0

在这里添加您要插入的完整logcat和Java代码。 – Sajmon 2013-02-24 19:22:28

0

请点击这里表名

private static final String DATABASE_CREATE 
= "create table TABLENAME (id integer primary key autoincrement, " 
+ "name VARCHAR not null, dob date, contact VARCHAR, email VARCHAR);"; 

这看起来像背后

no such table: profiles

+0

@ sajmon_d和@ mayukh R感谢您的帮助,但我仍然面临error02-24 23:56 :电子数据库(8203):错误插入电子邮件=联系人= dob =名称= – Saurabh 2013-02-24 18:43:48