好吧,所以我一直在研究过去的一天,我似乎无法弄清楚我的代码到底是什么问题。我将我的语法与大量不同的源进行了比较,并且在尝试将信息插入到我的行时仍然会出错。该数据库用于一个简单的注册页面,我在其中检索用户名和密码并将其插入我的数据库。代码:
public static final int database_version = 1;
public String CREATE_QUERY = " CREATE TABLE " + " ("+ TableData.TableInfo.USER_NAME +" TEXT, " + TableData.TableInfo.USER_PASS +" TEXT);";
public DatabaseOperations(Context context) {
super(context, TableData.TableInfo.DATABASE_NAME, null, database_version);
Log.d("Database operations", "Database created");
}
@Override
public void onCreate(SQLiteDatabase sdb){
sdb.execSQL(CREATE_QUERY);
Log.d("Database operations", "Table created");
}
@Override
public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2)
{
}
public void putInformation(DatabaseOperations dop,String name,String pass)
{
SQLiteDatabase SQ = dop.getWritableDatabase();
ContentValues cv = new ContentValues();
cv.put(TableData.TableInfo.USER_NAME, name);
cv.put(TableData.TableInfo.USER_PASS, pass);
SQ.insert(TableData.TableInfo.TABLE_NAME,null,cv);
Log.d("Database operations", "One row inserted");
}
我得到的错误如下:
03-22 19:09:45.300 31883-31883/com.example.andy.justalk E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.example.andy.justalk, PID: 31883
android.database.sqlite.SQLiteException: near "(": syntax error (code 1): , while compiling: CREATE TABLE (user_name TEXT, user_pass TEXT);
at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:889)
at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:500)
at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
我之前实际上已经过了注册页面但是当我尝试登录它时会说没有创建user_pass列。我知道有很多类型的问题,我似乎无法看到我的代码有任何问题。我甚至问过一位教授,他说我的查询看起来很好。有什么建议?!我在某个地方错过了一个空间或东西!?!?!?!
答案 0 :(得分:2)
我认为您的桌名缺失
<强>这里:强>
public String CREATE_QUERY = " CREATE TABLE " + " ("+ TableData.TableInfo.USER_NAME +" TEXT, " + TableData.TableInfo.USER_PASS +" TEXT);";
尝试为您的表创建一个名称:
public String CREATE_QUERY = " CREATE TABLE users" + " ("+ TableData.TableInfo.USER_NAME +" TEXT, " + TableData.TableInfo.USER_PASS +" TEXT);";
此处我们有CREATE TABLE
的SQLite文档:SQLITE CREATE TABLE Documentation
让我知道它是否有效。