当前位置: 首页 > 知识库问答 >
问题:

Android应用程序数据库连接

宓英哲
2023-03-14

我想用“OpenOrCreateDatabase”创建一个SQLLite数据库。问题是,我在创建一个新表时出现了一个错误。

11-11 12:36:39.865: E/AndroidRuntime(1520): java.lang.IllegalStateException: 
database not open

这是我的代码:

EditText playerName;
Button submitPlayer;
SQLiteDatabase myDB = null;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.activity_main);

    playerName = (EditText)findViewById(R.id.playerName);
    submitPlayer = (Button)findViewById(R.id.submitPlayer);


        myDB = SQLiteDatabase.openOrCreateDatabase("/data/data/com.my.appname/mydb.db",null);           
  try{          

        myDB.execSQL("CREATE TABLE IF NOT EXISTS player (playername VARCHAR)");         
        myDB.execSQL("INSERT INTO player VALUES('test')");

怎么了?

多谢!

共有1个答案

罗宪
2023-03-14

你不应该这样访问你的数据库。而且您不需要/data/data的存储权限,这是针对sdcard的。您应该使用SQLiteOpenHelper来管理您的数据库。这里有一个教程让你开始

 类似资料:
  • 问题内容: 我正在为我的三年级项目编写应用程序。该应用程序将需要与外部mySQL数据库进行交互。该应用程序将从数据库中检索数据,并在ListView中将其显示给用户。 我对应用程序将要具有的功能有很好的了解。我也花了很多时间使用ListViews和本地SQLite数据库。我还对HttpUrlConnection类做了一些重新研究。 我只是想知道有人能为我提供更多有关如何访问此外部数据库的指导吗?

  • 问题内容: 我正在研究将由学校使用的应用程序。每所学校将建立自己的数据库。每个学校都会为应用程序提供自己的“设置”文件。设置文件将包含创建设置文件的特定学校的数据库URL。这样一来,使用该应用程序的学生如果想连接到其他数据库,就只能加载其他设置文件。 我的问题是,如何保护用于连接数据库的用户名和密码?因此,只有应用程序具有对数据库的读写访问权限。应用程序仅具有该特定学校的读写权限吗? 如果您需要更

  • 也就是说,我想创建应用程序,然后让这些应用程序访问一个项目的特定Firebase数据库。 查看Firebase Android文档,我找不到一种方法来使用下面的方法将数据发送到另一个项目中的另一个Firebase数据库,但其中的引用是另一个项目的。

  • 你能帮我吗?我正在尝试创建一个Android应用程序,它将连接到SQL服务器数据库。我正在使用JDBC驱动程序和: > 在项目设置中添加了JDBC- 最后,我收到了一个例外,那就是驱动程序com。微软jdbc。未找到SQLServerDriver 如果我在Java应用程序上运行相同的控制台应用程序,它就会工作。

  • 代码: 我将db2jcc.jar拖放到/app/libs文件夹中,并右键单击+Add as library 我使用Android Studio 我读到db2jcc.jar不能与jdk 1.8一起工作,这就是我安装jdk 1.7的原因(Did file->project structure->SDK Location->将jdk Location更改为我的JDK1.7.0目录) build.grad

  • 问题内容: 我遇到以下问题:当我尝试使用外部IP地址(PC的IP而不是本地IP的createTcpServer =在cmd.exe中运行ipconfig后我们看到的输出)时,发生以下错误: 服务器错误:异常打开端口“ 9092”(端口可能正在使用),原因:“ java.net.BindException:无法分配请求的地址:JVM_Bind” [90061-169] 但是,该端口未使用。我已经使用