【发布时间】:2017-03-31 06:39:17
【问题描述】:
嗨,我是 android 编程的新手,我想在 android 应用程序中使用 sqlite 数据库来处理一些与数据库相关的东西。我正在开发应用程序,就像它会从家里扫描一些 wifi 设备到那里供应商 ID 应该在列表视图中显示在按下列表中的任何项目时它应该向该受尊敬的设备发送一些 udp 消息在得到对 udp 消息的响应时它应该再次创建一个列表视图那个回应。我已经实现了与 Udp 相关的东西并扫描了与 wifi 设备相关的东西,但剩下的就是在获取设备后,我需要存储该设备以获取更多与 udp 相关的东西并维护数据库,任何人都可以有最好的建议。
lass IP_Channal_DB extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "note.db";
private static final String Table_NAME = "Ip_channal_Table";
private static final String Col_1 = "ID";
private static final String Col_2 = "IP_Address";
private static final String Col_3 = "Flag";
private static final String Col_4 = "Channal_1";
private static final String Col_5 = "Channal_2";
private static final String Col_6 = "Channal_3";
private static final String Col_7 = "Channal_4";
private static final int SCHEMA_VERSION = 1;
private static final String DATABASE_CREATE = "CREATE TABLE " + Table_NAME + " (" + Col_1 + " integer PRIMARY KEY autoincrement," + Col_2 + "TEXT," + Col_3 + "TEXT," + Col_4 + "TEXT," + Col_5 + "TEXT," + Col_6 + "TEXT," + Col_7 + "TEXT,)";
public IP_Channal_DB(Context context) {
super(context, DATABASE_NAME, null, SCHEMA_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
Log.v("MainActivity","creating table");
db.execSQL(DATABASE_CREATE);
//db.execSQL("CREATE TABLE "+Table_NAME+"("+Col_1+" INTEGER PRIMARY KEY AUTOINCREMENT,"+Col_2+" TEXT,"+Col_3+"INTEGER,"+Col_4+" TEXT,"+Col_5+" TEXT,"+Col_6+" TEXT,"+Col_7+" TEXT);");
}
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
}
/* public Cursor getAll_IP()
{
return (getReadableDatabase().rawQuery("SELECT "+Col_1+", "+Col_2+" FROM "+Table_NAME,null));
}*/
public Cursor getAll_IP()
{
SQLiteDatabase db=this.getReadableDatabase();
Cursor cur=db.rawQuery("SELECT "+Col_1+" as _id, "+Col_2+" from "+Table_NAME,new String [] {});
return cur;
}
}
和logcat窗口是
03-31 14:39:36.547 1681-1681/com.example.admin.myhome E/SQLiteLog: (1) no such table: Ip_channal_Table
03-31 14:39:36.557 1681-1681/com.example.admin.myhome E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.admin.myhome, PID: 1681
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.admin.myhome/com.example.admin.myhome.MainActivity}: android.database.sqlite.SQLiteException: no such table: Ip_channal_Table (code 1): , while compiling: SELECT ID as _id, IP_Address from Ip_channal_Table
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2348)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2410)
at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:4019)
at android.app.ActivityThread.access$900(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1319)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5345)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:947)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:742)
Caused by: android.database.sqlite.SQLiteException: no such table: Ip_channal_Table (code 1): , while compiling: SELECT ID as _id, IP_Address from Ip_channal_Table
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)
at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
at android.database.sqlite.SQLiteQuery.<init>(SQLiteQuery.java:37)
at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:44)
at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1316)
at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1255)
at com.example.admin.myhome.IP_Channal_DB.getAll_IP(NoteHolder.java:52)
at com.example.admin.myhome.MainActivity$override.onCreate(MainActivity.java:131)
at com.example.admin.myhome.MainActivity$override.access$dispatch(MainActivity.java)
at com.example.admin.myhome.MainActivity.onCreate(MainActivity.java:0)
at android.app.Activity.performCreate(Activity.java:6012)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2292)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2410)
at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:4019)
at android.app.ActivityThread.access$900(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1319)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5345)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:947)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:742)
【问题讨论】:
标签: listview android-studio android-sqlite android-custom-view