【发布时间】:2015-03-23 00:13:43
【问题描述】:
好吧,过去一天我一直在研究,但我似乎无法弄清楚我的代码到底出了什么问题。我已经将我的语法与大量不同的来源进行了比较,但在尝试将信息插入我的行时仍然会出错。该数据库用于一个简单的注册页面,我在其中检索用户名和密码并将它们插入到我的数据库中。代码:
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 列。我知道有很多这类问题,我似乎看不出我的代码有什么问题。我什至问过一位教授,他说我的问题看起来不错。有什么建议?!我是否在某处缺少空间或其他东西!?!?!?!
【问题讨论】:
标签: android mysql database sqlite