安卓sqlite数据库,继承自SQLiteOpenHelper 这里面的onCreate是继承的时

安卓sqlite数据库,继承自SQLiteOpenHelper 这里面的onCreate是继承的时,第1张

额。。。这个提示好像只是说这个方法没有被引用吧

一年多没碰了,印象这个地方是坑了很久,翻了下以前的代码,发现几个线索

这个成员声明去掉private

SQLiteDatabase db

实现类里面有个这个东东,你在你的实现类里面加下试试,可能有效

public final static String DB_NAME = "test.db"

可以用这个函数调试,方法进去没有很清晰

android.util.Log.i("onCreate()", "create Database------------->")

去翻翻父类的机制,印象中里面调来调去的

附测过的源码(sdk的版本是20131030这个的)

package org.xxxx.andriod.iweather

import android.content.Context

import android.database.sqlite.SQLiteDatabase

import android.database.sqlite.SQLiteDatabase.CursorFactory

import android.database.sqlite.SQLiteOpenHelper

import android.util.Log

public class DBHandle extends SQLiteOpenHelper {

    private static final int VERSION = 1

    // public final static String DB_PATH = "/sdcard/mydb/"

    public final static String DB_NAME = "iweather.db"

    SQLiteDatabase db

    public DBHandle(Context context, String name) {

        super(context, name, null, VERSION)

        Log.i("init DBHandle:", "1")

    }

    public DBHandle(Context context, String name, CursorFactory factory,

            int version) {

        super(context, name, factory, version)

        Log.i("init DBHandle:", "2")

    }

    @Override

    public void onCreate(SQLiteDatabase db) {

        // TODO Auto-generated method stub

        // db = getWritableDatabase()

        Log.i("onCreate()", "create Database------------->")

        //这个表用于存放地市列表

        db.execSQL("create table city_list(city_id varchar(20),city_name varchar(20),parent_id varchar(20),parent_name varchar(20),is_leaf int)")

        //这个表用于存放地市ID和查询天气时用的地市编码映射关系

        db.execSQL("create table city_code(city_id varchar(20),city_code varchar(20))")

        Log.d("Sqlite onCreate...", db.toString())

    }

    

    @Override

    public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {

        // TODO Auto-generated method stub

    }

}

库。

通常使用以下两种方法来映射继承关系:

1)将基类映射到一张表,每个子类映射到一张表。在基类对应的表中定义主键,而在

子类对应的表中定义外键。

2)将每个子类映射到一张表,没有基类表。在每个子类的表中包括基类的所有属性。

这种方法适用于子类的个数不多,基类属性比较少的情况。

说简单点吧:

首先导入命名空间:using System.Data.SqlClient

然后定义2个对象

//1 建立连接对象

SqlConnection con=new SqlConnection()

//2 连接字符串(这里连接的是本地数据库,sa用户登陆,无密码)

con.ConnectionString="server=.uid=sapwd="

//3 建立命令执行对象

SqlCommand cmd=new SqlCommand()

//4 给命令执行对象指定连接对象

cmd.Connection=con

//5 SQL语句(指定要创建数据库的SQL句)

cmd.CommandText="create database mydatabase"

//6 打开数据库连接

con.Open()

//7 执行命令对象里的SQL语句

cmd.ExecuteNonQuery()

//8 执行完后关闭数据库连接

con.Close()

这样数据库就建立好了,要建立自定义的数据库就看你的SQL语句了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9908173.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存