- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 sqlite 数据库中遇到问题。实际上我有 3 个 .java 文件和一个数据库帮助程序类,其中创建了我的数据库,创建了表插入等所有 CRUD 函数,我试图从其他一些 Activity 类中调用它们,但它没有调用也没有从中检索数据 table 。这是我的文件,请任何人告诉我哪里出错了。
MainActivity.java
package mad.project;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
DatabaseHelper m = new DatabaseHelper(this);
m.onCreate();
Button menubutton4 = (Button) findViewById(R.id.InsertRecipeButton);
menubutton4.setOnClickListener(new View.OnClickListener() {
public void onClick(View argo) {
Intent intent4 = new Intent(MainActivity.this, TryActivity.class);
startActivity(intent4);
}
});
}
}
当我单击按钮时,我们将到达 TryActivity 类,如下所示:
package mad.project;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class TryActivity extends Activity{
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.insertrecipe);
final DatabaseHelper m = new DatabaseHelper(this);
final EditText RecipeBox = (EditText) findViewById(R.id.RecipeBox);
Button submit_button = (Button) findViewById(R.id.SubmitRecipe);
submit_button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
String a=RecipeBox.getText().toString();
m.Insert_Recipe_Into_DB(a);
Intent intent23 = new Intent(TryActivity.this,RoughActivity.class);
startActivity(intent23);
}
});}}
在这个类中,我创建了Databsehelper类的对象“m”,该对象用于调用DatabaseHelper类的Insert_Recipe_Into_DB函数。到目前为止,如果我从上面删除 Intents 语句,就没有问题了。但是,如果我在调用插入函数后调用另一个 Activity 类,它会显示“forcesclose”错误。下一个 Activity 类别如下:
RoughActivity.java
package mad.project;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
public class RoughActivity extends Activity{
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final DatabaseHelper m = new DatabaseHelper(this);
String [] rec ;
rec=m.get_recipe();
int rec_len = rec.length;
String [] todaymenu = new String[rec_len];
for(int i = 1;i<=rec_len;i++)
{
todaymenu[i]=rec[i-1];
}
this.setListAdapter(newArrayAdapter<String>(RoughActivity.this,
R.layout.todays_menu_view,R.id.Today,rec));
}
private void setListAdapter(ArrayAdapter<String> arrayAdapter) {
// TODO Auto-generated method stub
}
}
DatabaseHelper.java
package mad.project;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DatabaseHelper extends SQLiteOpenHelper{
static final String dbName="CookBookDatabase";
public DatabaseHelper(Context context)
{
super(context, dbName, null, 33);
// TODO Auto-generated constructor stub
}
static final String Try_Table= "Try_Table";
static final String Recipe= "Recipe";
public void onCreate() {
execSQL("CREATE TABLE "+Try_Table+" ( "+ Recipe + " VARCHAR ) " );
}
private void execSQL(String string) {
// TODO Auto-generated method stub
}
public void Insert_Recipe_Into_DB(String a)
{
SQLiteDatabase db= this.getWritableDatabase();
ContentValues cv=new ContentValues();
cv.put(Recipe, a);
db.insert(Try_Table, Recipe, cv);
db.close();
}
String[] get_recipe()
{
String [] recipe = null;
SQLiteDatabase db=this.getReadableDatabase();
Cursor count =db.rawQuery("SELECT COUNT(*) FROM "+Try_Table, null);
count.moveToFirst();
if(count.getInt(0) == 0)
{
db.close();
return recipe;
}
if(count.getInt(0)!= 0 )
{
Cursor cur=db.rawQuery("SELECT * FROM "+Try_Table, null);
int br_count =cur.getCount();
if(br_count != 0)
{
int i=0, index;
recipe= new String[br_count];
cur.moveToFirst();
do {
index=cur.getColumnIndex(Recipe);
recipe[i++]=cur.getString(index);
}while(cur.moveToNext());
}
}
db.close();
return recipe;
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
}
@Override
public void onCreate(SQLiteDatabase arg0) {
// TODO Auto-generated method stub
}
}
请告诉我在 DatabaseHelper 类还是 RoughActivity 类中哪里出错了。
最佳答案
您需要在检索数据或将数据插入 SQLite 数据库的 Activity 中打开数据库。还要确保完成后将其关闭。
final DatabaseHelper m = new DatabaseHelper(this);
m.open();
在你的 onDestroy 或暂停中。调用
m.close();
这可能是问题所在,因为我看不到您在代码中打开数据库的位置。
编辑:
在您的 DatabaseHelper 类中。创建一个方法。
public void open(){
db.open();
}
public void close(){
db.close()
}
然后,您将可以在需要插入和检索信息的 Activity 中关闭和打开数据库。
关于java - 游标未从 sqlite 数据库检索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8361906/
我正在尝试使用游标遍历表: DEClARE @ProjectOID as nvarchar (100) DECLARE @TaskOID as nvarchar (100) DECLARE TaskO
使用 JOprionPane 时,光标出现了一些问题。我将光标设置到 pharent 框架,然后使用这个显示一个对话框: Object[] possibilities = {"ham", "spam"
我想将数据从一个表(原始数据,所有列都是 VARCHAR)复制到另一个表(使用相应的列格式进行格式化)。 为了将数据从 rawdata 表复制到 formatted 表中,我使用游标来识别受影响的行。
我先走了 我 100% 属于集合运算阵营。但是当设置逻辑时会发生什么在整个所需的输入域上进行检索会导致如此大的检索,以至于查询显着减慢,变得缓慢,或者基本上需要无限的时间? 在这种情况下,我将使用可能
为什么我不能这样做?我想从 TABLEA 中搜索大于光标值的最接近的值,对两者执行平均函数并将结果放入 test3 中。我收到错误代码 1054 未知列“Xnearest in 'field list
我希望以下存储例程返回一系列行,但它只返回 1: CREATE PROCEDURE example() BEGIN DECLARE current_id INT;
我有一张代表患者体检的表,它有检查 ID 和患者 ID。 我想逐行浏览表格并获取每个患者 ID 并比较其不同的咨询,看看它是否被视为“new_attack”。我正在处理疟疾疾病,我们认为每个在过去 6
如文档所述here ,我需要声明一个在打开时接受参数的游标。 我的查询类似于: DECLARE cur CURSOR (argName character varying) FOR SELECT *
我正在尝试使用 PostgreSQL 学习基本游标。这是我的脚本: DECLARE cur_employees CURSOR FOR SELECT * FROM employee CLOS
*DELIMITER // create procedure test(OUT l_out INT) begin DECLARE done INT DEFAULT FALSE; declare l_s
来自 psycopg2 文档: When a database query is executed, the Psycopg cursor usually fetches all the record
我正在使用 while 循环遍历游标,然后输出数据库中每个点的经度和纬度值。 出于某种原因,它没有返回光标中的最后一组(或第一个取决于我是否使用 Cursor.MoveToLast)经度和纬度值。 这
不知道有没有人试过全新的PHPStorm 4 , 但我遇到了这个新版本的问题,而我以前的主要版本 (PHPStorm 3) 没有。 基本上,当我单击代码 View 空白处的任意位置时,光标会设置在该位
mysql的存储过程、游标 、事务实例详解 下面是自己曾经编写过的mysql数据库存储过程,留作存档,以后用到的时候拿来参考。 其中,涉及到了存储过程、游标(双层循环)、事务。 【说明】:代码
Mysql的存储过程是从版本5才开始支持的,所以目前一般使用的都可以用到存储过程。今天分享下自己对于Mysql存储过程的认识与了解。 一些简单的调用以及语法规则这里就不在赘述,网上有许多例子。这里
我正在使用 SQL Server,我有一个包含 3 列(时间序列)的表 data ,带日期,hour开始,AwardStatus . 大部分奖励状态是随机生成的。有两种选择,授予或未授予。 但是,业务
就目前情况而言,这个问题不太适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、民意调查或扩展讨论。如果您觉得这个问题可以改进并可能重新开放,visit
Why am getting duplicate records ? pls correct me.Thanks in Advance. declare clazzes_rec clazzes%r
Why am getting duplicate records ? pls correct me.Thanks in Advance. declare clazzes_rec clazzes%r
我需要在数据表中设置一个非唯一标识符。这在组内是连续的,即。对于每个组,ID 应从 1 开始,并以 1 为增量递增,直到该组的最后一行。 下表对此进行了说明。 “新 ID”是我需要填充的列。 Uniq
我是一名优秀的程序员,十分优秀!