E/SqliteDatabase(6729):Android.database.sqlite.sqliteException:“CREATE”附近:语法错误(代码1):,编译时:插入到创建表关系(_id整数主键自动增量,名称文本不为NULL,电子邮件文本不为NULL,年代文本不为NULL,位置文本不为NULL);(电子邮件,名称,年代,位置)值(?,?,?,?)
DbManager类
public class DBManager {
int rowsAffected;
// Database and version
private static final String DB_NAME = "familyHistory";
private static final int DB_VERSION = 1;
private static final String TABLE_INFO = "familyTable";
private static final String _ROWID = "_id";
private static final String _NAME = "name";
private static final String _EMAIL = "email";
private static final String _AGE = "age";
private static final String _LOCATIONs = "location";
private static final String CREATE_PRO = "CREATE TABLE " + TABLE_INFO + "(" +
_ROWID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
_NAME + " TEXT NOT NULL, " +
_EMAIL + " TEXT NOT NULL, " +
_AGE + " TEXT NOT NULL, " +
_LOCATIONs + " TEXT NOT NULL);";
private final Context ourContext;
private static DBHelper ourDBHelper;
private SQLiteDatabase ourDatabase;
public DBManager(Context ctx) {
this.ourContext = ctx;
Log.i("db", "DBManager(Context ctx)");
}
private static class DBHelper extends SQLiteOpenHelper {
public DBHelper(Context context) {
// SQLiteOpenHelper Constructor Creating database
super(context, DB_NAME, null, DB_VERSION);
Log.i("db", "DBHelper(Context context)");
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_PRO);
Log.e(">>>>>", CREATE_PRO);
// db.execSQL(CREATE_TRVLBOK);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVer, int newVer) {
Log.w("Nomad", "Upgrading database from version " + oldVer + " to " + newVer
+ ", which will destroy all old data");
db.execSQL("DROP TABLE IF EXISTS " + TABLE_INFO);
// db.execSQL("DROP TABLE IF EXISTS " + TABLE_TRAVELBOK);
onCreate(db);
Log.i("db", "onUpgrade)");
}
}
public DBManager open() throws SQLException {
ourDBHelper = new DBHelper(ourContext);
ourDatabase = ourDBHelper.getWritableDatabase();
Log.i("db", "open()");
return this;
}
public void close() {
ourDBHelper.close();
Log.i("db", "close()");
}
public long insertFamRec(String UserName, String Email, String age, String location) {
ContentValues cv = new ContentValues();
cv.put(_NAME, UserName);
cv.put(_EMAIL, Email);
cv.put(_AGE, age);
cv.put(_LOCATIONs, location);
Log.i("db", "insertLocRec");
return ourDatabase.insert(CREATE_PRO, null, cv);
}
}
从插入类中,我添加了这些行,但仍然错误
DBManager db = new DBManager(NewRelation.this);
db.open();
long i = db.insertFamRec("strfullName", "stremail", "strage", "strlocation");
db.close();
if (i > 0) {
ShowMessage.Message(NewRelation.this, "data is added");
} else {
Toast.makeText(getApplicationContext(), "data is failed", Toast.LENGTH_SHORT).show();
}
如果有人给问题打分,请说明原因。
问题似乎是在调用ourdatabase.insert
的地方,传递查询字符串代替表名。您希望通过这行:returnourdatabase.insert(CREATE_PRO,null,cv);
实现什么?
将行更改为:
return ourDatabase.insert(TABLE_INFO, null, cv);
注意,我传递的不是create_pro
,而是table_info
,这是要插入的表的名称。我希望这能解决你的问题。如果有帮助请告诉我。
我创建DbManger类来处理Sqlite数据库操作,我尝试在数据库中插入值,但它给出了一个错误 E/SQLiteDatabase(6729):android.database.sqlite.SQLiteExcture:近"CREATE":语法错误(代码1):,编译时: INSERT INTO CREATE表关系(_idINTEGER主键自动输入,名称文本不为空,电子邮件文本不为空,年龄文本不为空
这是我的代码: LogCat说:12-11 23:43:50.553:E/AndroidRuntime(3706):android.database.sqlite.sqliteException:“create ;table”附近:语法错误(代码1):,编译时:create ;table PapersTable(_id integer ;primary ;key ;autoincrement,ti
我有一些问题Laravel迁移。我的文章和标签之间有多对多的关系。'article_tag'迁移: 标签迁移: “第条移徙: 我的控制台日志: illumb\Database\QueryException:SQLSTATE[HY000]:一般错误:1 near“)”:语法错误(SQL:创建表“article_-tag”(“article_-id”integer不为null,“tag_-id”int
我只是想创建一个包含一列的表,并向其中添加一些值,但我得到了两个错误。一种是取消对db.close()的注释;句柄关闭太快,另一个是下面是代码。
我有一个方法,如果检查两个文本字段存在,然后重新调整记录ID。我方法是这样的: 我的桌子是这样的: 现在,当我运行该方法时,就像getQueryMatch(Mystr1,Mystr2); 我有一个错误: 我的select查询看起来很正常,但我不知道问题出在哪里?
我的SQL语句语法有问题,LogCat说问题就在哪里。我哪里错了? 下面是我的代码: 任何帮助或建议都将欣然接受,这是我的项目的最后一块拼图。当我做完这件事我就可以Rest了。提前道谢。