当前位置: 首页 > 面试题库 >

Android-SQLite数据库方法未定义的FOT类型

丁宏盛
2023-03-14
问题内容

我在这个应用程序中有一个应该创建和使用数据库的类,但是Eclipse告诉我sqlite方法是未定义的。

似乎是一个上下文问题,但我不知道如何解决,我是否要扩展其他类而不是Activity?

package com.android.userdata;

import android.app.Activity;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

 public class getdata extends Activity {

  private final String MY_DATABASE_NAME = "DataStore";
        private final String MY_DATABASE_TABLE = "UserData";

     /** Called when the activity is first created. */
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.userdata);

         SQLiteDatabase myDB = null;
            /* Create the Database (no Errors if it already exists) */
            this.createDatabase(MY_DATABASE_NAME, 1, MODE_PRIVATE, null);
            myDB = this.openDatabase(MY_DATABASE_NAME, null);

            myDB.execSQL("CREATE TABLE IF NOT EXISTS "
                    + MY_DATABASE_TABLE
                    + " (LastName VARCHAR, FirstName VARCHAR,"
                    + " Country VARCHAR, Age INT(3));");

         Button btn = (Button) findViewById(R.id.confirm);
         btn.setOnClickListener(new OnClickListener() {
          @Override
          public void onClick(View v) {
           Toast.makeText(getdata.this, "Hai Premuto il Pulsante", Toast.LENGTH_SHORT).show();
          }
         });
     }
}

谢谢你的帮助!


问题答案:

我建议您使用SQLiteOpenHelper。

如果数据库不可用,它会自动创建一个数据库。

示例代码:

 public class DatabaseHelper extends SQLiteOpenHelper {
     private static final int DB_VERSION = 1;
     private static final String DB_NAME = "myDB.db";

     public DatabaseHelper(Context ctx) {
         super(ctx, DB_NAME, null, DB_VERSION);
     }

     @Override
     public void onCreate(SQLiteDatabase db) {
         String query = "CREATE TABLE myTable(_id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, age INTEGER NOT NULL)";
         db.execSQL(query);
         db.close();
     }

     @Override
     public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
         ...
     }
}

像这样使用它:

...
DatabaseHelper helper = new DatabaseHelper(context);
SQLiteDatabase db = helper.getWritableDatabase();
...

我认为这很容易,您无需担心数据库是否已存在。

希望这可以帮助 :)

编辑:

我有个主意…可能无法像您正在做的那样给这个字符串…尝试先构建字符串。像这样:

String query = "YOUR SQL STATEMENT";
db.execSQL(query);
db.close();

有可能:)



 类似资料:
  • 问题内容: 我对SQLITE相当陌生,我注意到只有4种数据类型,但是我在网上看到的例子中人们在放置自己的数据类型。我对此不太了解,想知道是否有人可以向我解释。例如,我看到一列将保存日期,并且给定的数据类型是不存在的时间戳。默认是什么?自己制作时默认为文本吗? 问题答案: 使用动态类型系统。只有五个存储类:NULL,整数,实数,文本和blob。(来源:SQLite版本3中的数据类型。) 并且,引用该

  • 本文向大家介绍Android 数据库SQLite 写入SD卡的方法,包括了Android 数据库SQLite 写入SD卡的方法的使用技巧和注意事项,需要的朋友参考一下 如果手机没有root,数据库文件是无法查看到的,不方便调试。 最好的办法是把数据库写进SD卡。 修改的地方有两处: 1.在你的helper类中把数据库文件名称 DATABASE_NAME 由原来的一个文件名,修改成路径的形式。 修改

  • 本文向大家介绍Android SQLite数据库基本操作方法,包括了Android SQLite数据库基本操作方法的使用技巧和注意事项,需要的朋友参考一下 程序的最主要的功能在于对数据进行操作,通过对数据进行操作来实现某个功能。而数据库就是很重要的一个方面的,Android中内置了小巧轻便,功能却很强的一个数据库–SQLite数据库。那么就来看一下在Android程序中怎么去操作SQLite数据库

  • 构建一个基本的基于sqlite的登录/注册应用程序。点击登录后App崩溃。 有什么想法吗? databaseHelper.java: display.java: contact.java:

  • 本文向大家介绍js+html5操作sqlite数据库的方法,包括了js+html5操作sqlite数据库的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了js+html5操作sqlite数据库的方法。分享给大家供大家参考,具体如下: 希望本文所述对大家JavaScript程序设计有所帮助。

  • 我是在Android应用程序中使用SQL的新手,并且我在更新使用listView创建的表时遇到了一些麻烦。我设法从listView中更新了一个元素,但它不是正确的元素,它总是列表中的第一个元素发生了变化。 我制作了一个只有一列的表(稍后我将添加更多的两列),下面是我如何构建它: TaskContract_Faltas.java TaskDbHelper_Faltas Faltas.java 我使用