2015-10-05 27 views
-1

我正在創建一個需要登錄的應用程序。我創建了主要和登錄activity.so當我插入用戶名和密碼它應該保存到數據庫。 我在安裝應用程序時遇到這些錯誤。將數據放入android數據庫時出錯

10-05 23:12:18.959 18728-18728/? E/AndroidRuntime:  at com.example.shoaib.myapplication.DatabaseOperations.onCreate(DatabaseOperations.java:23) 
10-05 23:12:18.959 18728-18728/? E/AndroidRuntime:  at com.example.shoaib.myapplication.DatabaseOperations.PutInformation(DatabaseOperations.java:32) 
10-05 23:16:45.809 18970-18970/? E/AndroidRuntime:  at com.example.shoaib.myapplication.DatabaseOperations.onCreate(DatabaseOperations.java:23) 
10-05 23:16:45.809 18970-18970/? E/AndroidRuntime:  at com.example.shoaib.myapplication.DatabaseOperations.PutInformation(DatabaseOperations.java:32) 
10-05 23:26:21.659 31040-31040/? E/AndroidRuntime:  at com.example.shoaib.myapplication.DatabaseOperations.onCreate(DatabaseOperations.java:23) 
10-05 23:26:21.659 31040-31040/? E/AndroidRuntime:  at com.example.shoaib.myapplication.DatabaseOperations.PutInformation(DatabaseOperations.java:32) 
10-05 23:28:34.489 31330-31330/? E/AndroidRuntime:  at com.example.shoaib.myapplication.DatabaseOperations.onCreate(DatabaseOperations.java:23) 
10-05 23:28:34.489 31330-31330/? E/AndroidRuntime:  at com.example.shoaib.myapplication.DatabaseOperations.PutInformation(DatabaseOperations.java:32) 
10-05 23:45:53.309 31935-31935/? E/AndroidRuntime:  at com.example.shoaib.myapplication.DatabaseOperations.onCreate(DatabaseOperations.java:23) 
10-05 23:45:53.309 31935-31935/? E/AndroidRuntime:  at com.example.shoaib.myapplication.DatabaseOperations.PutInformation(DatabaseOperations.java:32) 
10-05 23:48:01.659 32267-32267/? E/AndroidRuntime:  at com.example.shoaib.myapplication.DatabaseOperations.onCreate(DatabaseOperations.java:23) 
10-05 23:48:01.659 32267-32267/? E/AndroidRuntime:  at com.example.shoaib.myapplication.DatabaseOperations.PutInformation(DatabaseOperations.java:32) 
10-05 23:56:57.979 32571-32571/? E/AndroidRuntime:  at com.example.shoaib.myapplication.DatabaseOperations.onCreate(DatabaseOperations.java:24) 
10-05 23:56:57.979 32571-32571/? E/AndroidRuntime:  at com.example.shoaib.myapplication.DatabaseOperations.PutInformation(DatabaseOperations.java:33) 
10-05 23:58:57.249 451-451/? E/AndroidRuntime:  at com.example.shoaib.myapplication.DatabaseOperations.onCreate(DatabaseOperations.java:23) 
10-05 23:58:57.249 451-451/? E/AndroidRuntime:  at com.example.shoaib.myapplication.DatabaseOperations.PutInformation(DatabaseOperations.java:32) 
10-06 00:02:41.189 898-898/com.example.shoaib.myapplication E/AndroidRuntime:  at com.example.shoaib.myapplication.DatabaseOperations.onCreate(DatabaseOperations.java:23) 
10-06 00:02:41.189 898-898/com.example.shoaib.myapplication E/AndroidRuntime:  at com.example.shoaib.myapplication.DatabaseOperations.PutInformation(DatabaseOperations.java:32) 
10-06 00:04:54.439 1175-1175/? E/AndroidRuntime:  at com.example.shoaib.myapplication.DatabaseOperations.onCreate(DatabaseOperations.java:23) 
10-06 00:04:54.439 1175-1175/? E/AndroidRuntime:  at com.example.shoaib.myapplication.DatabaseOperations.PutInformation(DatabaseOperations.java:32) 
10-06 00:05:57.279 1426-1426/? E/AndroidRuntime:  at com.example.shoaib.myapplication.DatabaseOperations.onCreate(DatabaseOperations.java:23) 
10-06 00:05:57.279 1426-1426/? E/AndroidRuntime:  at com.example.shoaib.myapplication.DatabaseOperations.PutInformation(DatabaseOperations.java:32) 
10-06 00:07:16.629 1733-1733/? E/AndroidRuntime:  at com.example.shoaib.myapplication.DatabaseOperations.onCreate(DatabaseOperations.java:23) 
10-06 00:07:16.629 1733-1733/? E/AndroidRuntime:  at com.example.shoaib.myapplication.DatabaseOperations.PutInformation(DatabaseOperations.java:32) 

這個人是DatabaseOperations.java文件

package com.example.shoaib.myapplication; 

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

/** 
* Created by shoaib on 10/5/2015. 
*/ 
public class DatabaseOperations extends SQLiteOpenHelper{ 

    public static final int database_version=1; 
    public String CREATE_QUERY="CREATE TABLE "+tableData.tableInfo.TABLE_NAME+"("+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 db, int oldVersion, int newVersion) { 

    } 
    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); 
     long k=SQ.insert(tableData.tableInfo.TABLE_NAME,null,cv); 
     Log.d("Database Operations","one row inserted"); 
    } 
} 
+1

實際的例外是不是在您的文章。我相信某些部分的異常輸出缺失。順便說一句,它似乎你不要從PutInformation創建。所以你不應該從我的意見 – Adem

+0

這個代碼中得到這樣的例外,所以我必須做出什麼改變? –

+0

@Adem你的意思是說,我不是調用onCreate()方法,而是自動執行,所以它不需要被稱爲形式PutInformation()。 –

回答

0

當你創建你必須添加列_id Integer primary key表。

+1

其實你沒有。你應該,因爲使用CursorAdapter會更容易,但這不是必需的。 – njzk2

1

如果您在logcat中你會看到異常的名稱和完整堆棧跟蹤一下:

Caused by: android.database.sqlite.SQLiteException: near ")": syntax error (code 1): , while compiling: CREATE TABLE table_name(username TEXT, pass TEXT,); 

從查詢中刪除多餘的最後一個逗號:

CREATE TABLE table_name(username TEXT, pass TEXT,); 
//           ^this one 
+0

Thanx.That爲我工作。 –