在android使用sqlite时 遇到问题

问题描述

如果onCreate 中的db.execSQL 建立的语句写成db.execSQL("create table user(id int,name varchar(20))");就没有问题。当时如果改变user为其他就会报错 认真检查过insert方法是对poolo表写入。但是进行查询和修改时会报错。public void onCreate(SQLiteDatabase db) {db.execSQL("create table poolo(id int,name varchar(20))");System.out.println("MySQLiteOpenHelper======>onCreate");}=================================================package cfuture.poolo;import java.util.Random;import android.app.Activity;import android.content.ContentValues;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class SQLiteActivity extends Activity {private Button createSQLite=null;private Button updateSQLite=null;private Button insert=null;private Button update=null;private Button select=null; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); createSQLite=findView(R.id.creatButton); updateSQLite=findView(R.id.updateSQLite); insert=findView(R.id.insert); update=findView(R.id.update); select=findView(R.id.select); createSQLite.setOnClickListener(new createSQLiteListener()); updateSQLite.setOnClickListener(new updateSQLiteListener()); insert.setOnClickListener(new insert()); update.setOnClickListener(new update()); select.setOnClickListener(new select()); } public Button findView(int Rtemp) { Button temp=null; temp=(Button)this.findViewById(Rtemp); return temp; } class createSQLiteListener implements OnClickListener {@Overridepublic void onClick(View v) {MySqliteOpenHelper my=new MySqliteOpenHelper(SQLiteActivity.this,"test",null,1);SQLiteDatabase db=my.getReadableDatabase();} } class updateSQLiteListener implements OnClickListener {@Overridepublic void onClick(View v) {MySqliteOpenHelper my=new MySqliteOpenHelper(SQLiteActivity.this,"test",2);SQLiteDatabase db=my.getReadableDatabase();} } class insert implements OnClickListener { int i=1;@Overridepublic void onClick(View v) {MySqliteOpenHelper my=new MySqliteOpenHelper(SQLiteActivity.this,"test");SQLiteDatabase db=my.getWritableDatabase();ContentValues c= new ContentValues();c.put("id", i);i++;c.put("name", "poolo");Random r= new Random();c.put("age", r.nextInt(20));db.insert("poolo", null, c);System.out.println("SQLiteActivity======>insert success");} } class update implements OnClickListener {@Overridepublic void onClick(View v) {MySqliteOpenHelper my=new MySqliteOpenHelper(SQLiteActivity.this,"test");SQLiteDatabase db=my.getWritableDatabase();ContentValues c= new ContentValues();c.put("name", "awen");db.update("poolo", c, "id=?", new String[]{"1"});System.out.println("SQLiteActivity======>update success");} } class select implements OnClickListener {@Overridepublic void onClick(View v) {MySqliteOpenHelper my=new MySqliteOpenHelper(SQLiteActivity.this,"test");SQLiteDatabase db=my.getReadableDatabase();Cursor c=db.query("poolo", new String[]{"id","name","age"}, "id=?",new String[]{"1"}, null, null, null);System.out.println("SQLiteActivity======>update success");while(c.moveToNext()){String name =c.getString(c.getColumnIndex("name"));System.out.println("sqlquery=="+name );System.out.println("name id=="+c.getColumnIndex("name"));}} }} 问题补充:package cfuture.poolo;import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;public class MySqliteOpenHelper extends SQLiteOpenHelper {public static final int version=1;public MySqliteOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version){super(context,name,factory,version);}public MySqliteOpenHelper(Context context, String name, int version){this(context,name,null,version);}public MySqliteOpenHelper(Context context, String name){this(context,name,version);}@Overridepublic void onCreate(SQLiteDatabase db) {db.execSQL("create table poolo(id int,name varchar(20),age int)");System.out.println("MySQLiteOpenHelper======>onCreate");}@Overridepublic void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {System.out.println("MySQLiteOpenHelper======>onUpgrade");System.out.println("onUpgrade====="+ arg1 + "|"+ arg2 + "=======");} public void onOpen(SQLiteDatabase db) { super.onOpen(db); } }

解决方案

一般出错,我会先看logcat提示什么··再找办法解决· 解决了就好··
解决方案二:
我的意思是,你先贴出,查询,修改的异常信息啊 这样才能下手去解决啊· ······
解决方案三:
查询和修改时会报错那你查询修改的时候 logcat的错误信息是什么啊?
解决方案四:
"当时如果改变user为其他就会报错"贴一下你的MySqliteOpenHelper

时间: 2024-08-21 11:11:23

在android使用sqlite时 遇到问题的相关文章

Android中SQLite数据库操作

一.基础知识: 1.SQLite的数据类型: NULL:空值. INTEGER:带符号的整型,具体取决有存入数字的范围大小. REAL:浮点数字,存储为8-byte IEEE浮点数. TEXT:字符串文本. BLOB:二进制对象. smallint 16位元的整数. interger 32位元的整数. decimal(p,s) p 精确值和 s 大小的十进位整数,精确值p是指全部有几个数(digits)大小值,s是指小数点后有几位数.如果没有特别指定,则系统会设为 p=5; s=0 . floa

Android中SQLite应用详解

上次我向大家介绍了SQLite的基本信息和使用过程,相信朋友们对SQLite已经有所了解了,那今天呢,我就和大家分享一下在Android中如何使用SQLite. 现在的主流移动设备像Android.iPhone等都使用SQLite作为复杂数据的存储引擎,在我们为移动设备开发应用程序时,也许就要使用到SQLite来存储我们大量的数据,所以我们就需要掌握移动设备上的SQLite开发技巧.对于Android平台来说,系统内置了丰富的API来供开发人员操作SQLite,我们可以轻松的完成对数据的存取.

app-关于android的 sqlite初始化的问题

问题描述 关于android的 sqlite初始化的问题 1C 我想做一个android 单机版的模拟考试app ,想把考题就放到sqlite数据库中.怎么办才能装上安装app的时候 ,就生成一个有数据的sqlite数据库 解决方案 Android sqlite 初始化数据库Android中Sqlite数据库多线程并发问题Android中Sqlite数据库多线程并发问题 解决方案二: 你可以事先存一个数据库到raw或者assets里面,安装时再复制到程序就行 解决方案三: 同上可以在raw或as

android中sqlite数据库的更新问题

问题描述 android中sqlite数据库的更新问题 当我们的apk中的数据库更新的时候,我们会在onUpgrade()中修改版本号,这样用户 升级的时候就可以更新数据库了,但是如果此时新的用户安装此应用的话,那不是还是以前的旧版本的数据库(因为第一次安装只会执行onCreate()),这不是有问题吗,如果想让新用户也用新版本的数据库,而且老用户的数据不会丢失怎么办呢??? 解决方案 继承SQLiteOpenHelper后需要在构造方法里指定当前db的版本号super(context, DAT

Android操作SQLite数据库(增、删、改、查、分页等)及ListView显示数据的方法详解_Android

本文实例讲述了Android操作SQLite数据库(增.删.改.查.分页等)及ListView显示数据的方法.分享给大家供大家参考,具体如下: 由于刚接触android开发,故此想把学到的基础知识记录一下,以备查询,故此写的比较啰嗦: 步骤如下: 一.介绍: 此文主要是介绍怎么使用android自带的数据库SQLite,以及把后台的数据用ListView控件显示 二.新建一个android工程--DBSQLiteOperate 工程目录: 三.清单列表AndroidManifest.xml的配置

Android程序启动时出现黑屏问题的解决方法_Android

本文实例讲述了Android程序启动时出现黑屏问题的解决方法.分享给大家供大家参考,具体如下: 关于黑屏: 默认的情况下,程序启动时,会有一个黑屏的时期,原因是,首个activity会加载一些数据,比如初始化列表数据.向服务器发送请求获取数据等等. 去除方法: 1.在style里面添加一个style: <style name="ContentOverlay"parent="@android:style/Theme.Light"> <itemname

Android使用Sqlite存储数据用法示例_Android

本文实例讲述了Android使用Sqlite存储数据的方法.分享给大家供大家参考,具体如下: 一般在开发程序中,经常使用数据的存储功能,如在使用Delphi开发程序时,存储程序的简单设置的INI文件,在C#开发中有时也需要存储简单的设置,个人一般存储在XML中,也在INI中存储过,但是不如XML使用方便,那么这些都是简单的数据存储功能,在Android中也支持这样的文件存储,但是现在这里主要说的还是使用SQLite存储数据,SQLite是一种跨平台的数据库,是单文件式的,如咱们平常见的最多的Ac

Android使用SQLite数据库的简单实例_Android

先画个图,了解下Android下数据库操作的简单流程: 1.首先,写一个自己的数据库操作帮助类,这个类继承自Android自带的SQLiteOpenHelper. 2.在自己的DAO层借助自己的Helper写数据库操作的一些方法 3.Activity调用DAO层的数据库操作方法进行操作 下面例子是: 1.Helper 复制代码 代码如下: package cn.learn.db.util; import android.content.Context;import android.databas

Android程序启动时出现黑屏问题的解决方法

本文实例讲述了Android程序启动时出现黑屏问题的解决方法.分享给大家供大家参考,具体如下: 关于黑屏: 默认的情况下,程序启动时,会有一个黑屏的时期,原因是,首个activity会加载一些数据,比如初始化列表数据.向服务器发送请求获取数据等等. 去除方法: 1.在style里面添加一个style: <style name="ContentOverlay"parent="@android:style/Theme.Light"> <itemname