求一个用c写的,拥有菜单功能的,支持sqlite数据库ios sqlite3增删改查查的源码。最好有注释。学习下

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
您的访问请求被拒绝 403 Forbidden - ITeye技术社区
您的访问请求被拒绝
亲爱的会员,您的IP地址所在网段被ITeye拒绝服务,这可能是以下两种情况导致:
一、您所在的网段内有网络爬虫大量抓取ITeye网页,为保证其他人流畅的访问ITeye,该网段被ITeye拒绝
二、您通过某个代理服务器访问ITeye网站,该代理服务器被网络爬虫利用,大量抓取ITeye网页
请您点击按钮解除封锁&android 对sqlite数据库的增删节查_数据库大全_优良自学吧 |
当前位置: >
> android 对sqlite数据库的增删节查优良自学吧提供android 对sqlite数据库的增删节查,android 对sqlite数据库的增删改查 Sqlite是android平台的一款轻量级的、嵌入式的、关系型数据库产品,以下是一些主要概念。 1.Sqlite通过文件保存数据库,创建的数据库文件默认存在在/data/data/&package&/databases/android 对sqlite数据库的增删改查
Sqlite是android平台的一款轻量级的、嵌入式的、关系型数据库产品,以下是一些主要概念。
1.Sqlite通过文件保存数据库,创建的数据库文件默认存在在/data/data/&package&/databases/的文件夹下,一个文件就是一个数据库。
2.一个数据库包含多个表格,一个表格包含不同的字段,字段类型等等,这与SQL数据库相似。
3.Sqlite记录没有顺序的概念,不存在第一第二类的概念,通过查询获取满足条件的记录。
android平台下操作数据库的的相关类
1、SQLiteOpenHelper 抽象类,用于创建和管理数据库以及版本,需要创建一个子类继承,该类封装了对数据库操作的基本方法,使用方便。
2、SQLiteDatabase 数据库访问类,主要是对数据库的增删改查等常用操作,功能比SQLiteOpenHelper丰富,比如事务管理,分页等等。
3、Cursor游标类,主要用来返回返回查询记录结果。
本程序主要采用SQLiteDatabase类操作数 据库,介绍android 平台下Sqlite的多种使用方法。主要功能如图。
图-1 Sqlite数据库界面的操作及其功能
图-2 创建的数据库截图
(1.)创建一个数据库
//在文件夹/data/data/&package&/databases/创建一个students.db的数据库
//该类返回一个SQLiteDatabase,对那个数据库操作,就要打开该数据库
openOrCreateDatabase("students.db",SQLiteDatabase.CREATE_IF_NECESSARY, null);
(2.)删除一个数据库
//在Context环境中,删除students.db,该方法返回一个boolean类型
deleteDatabase("students.db");
(3.)获取应用程序所有数据库的名称
//在Context环境中,获取该应用程序的所有数据库名称(即databases文件夹下的数据库文件)
//该方法返回一个字符串数组
databaseList()
(4.)重命名一个数据库
//将数据库data.db重命名为renamedata.db
File f = getDatabasePath("data.db");
File renameFile=getDatabasePath("renamedata.db");
f.renameTo(renameFile);
2.对表的操作
(1.)创建一个表(sql语句中创建)
mDb.execSQL("create table if not exists "+table+
" (id integer primary key autoincrement, "
+ "username text not null, info text not null);");
(2.)删除一个表
mDb.execSQL("drop table if exists " + table);
(3.)修改表
Sqlite是不能修改一个表的字段,不能删除一个表的字段,但是可以重命名一个表的名称,可以添加一个字段及其属性
1.)重命名表
mDb.execSQL("alter table " + oldTable + " rename to
"+ newTableName+";");
2.)添加一列
mDb.execSQL("alter table
" + table + " add column " + column +
type + " ;");
(4.)获取一个数据库的所有表的名称
mDb.rawQuery("select name from sqlite_master where type='table' order by name",null);
3.对数据库记录的操作
(1.)添加一条记录
ContentValues values = new ContentValues();
values.put("username", user.getUsername());
values.put("info", user.getInfo());
mDb.insert(table, null, values);
(2.)删除一条记录
String whereClause =
String[] whereArgs = new String[] {String.valueOf(id)};
mDb.delete(table, whereClause, whereArgs);
(3.)修改一条记录
ContentValues values = new ContentValues();
values.put("username", username);
values.put("info", info);
String whereClause = "id=?";
String[] whereArgs = new String[] { String.valueOf(id) };
mDb.update(table, values, whereClause, whereArgs);
(4.)查询一条数据
String[] columns = new String[] { "id", "username", "info" };
String selection = "id=?";
String[] selectionArgs = { String.valueOf(id) };
String groupBy =
String having =
String orderBy =
mDb.query(table, columns, selection,selectionArgs, groupBy, having, orderBy);
(5.)查询所有记录
mDb.rawQuery("select * from "+table, null);
SqliteActivity源码类如下(注意:在点击对数据记录的增删改查时要先create table ,否则会因为无法找到mytable表而报错)
SqliteActivity.java
package com.sqlite.
import java.io.F
import android.app.A
import android.content.ContentV
import android.database.C
import android.database.SQLE
import android.database.sqlite.SQLiteD
import android.os.B
import android.text.H
import android.view.V
import android.view.View.OnClickL
import android.widget.B
import android.widget.TextV
import android.widget.T
public class SqliteActivity extends Activity {
/** Called when the activity is first created. */
//SQLiteDatabase 引用
SQLiteDatabase mDb;
SQLiteDatabaseD
//显示结果
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//默认创建一个users.db的数据库
dao=new SQLiteDatabaseDao();
//创建一个数据库
Button createDatabase=(Button)findViewById(R.id.createdatabase);
createDatabase.setOnClickListener(createDatabaseClick);
//获取所有数据库
Button getDatabasesList=(Button)findViewById(R.id.getdatabaseslist);
getDatabasesList.setOnClickListener(getDatabaseListClick);
//重命名数据库
Button renameDatabase=(Button)findViewById(R.id.renamedatabase);
renameDatabase.setOnClickListener(renameDatabaseClick);
//删除一个数据库
Button removeDatabase=(Button)findViewById(R.id.removedatabase);
removeDatabase.setOnClickListener(removeDatabaseClick);
//创建一个表
Button createTable=(Button)findViewById(R.id.createtable);
createTable.setOnClickListener(createTableClick);
//获取所有的表
Button getTablesList=(Button)findViewById(R.id.gettableslist);
getTablesList.setOnClickListener(getTablesListClick);
//重命名一个表
Button renameTable=(Button)findViewById(R.id.renametable);
renameTable.setOnClickListener(renameTableClick);
//删除一个表
Button dropTable=(Button)findViewById(R.id.droptable);
dropTable.setOnClickListener(dropTableClick);
//为表添加一个字段
Button addTableColumn=(Button)findViewById(R.id.addtablecolumn);
addTableColumn.setOnClickListener(addTableColumnClick);
//获取表的所有列
Button getTableColumnsList=(Button)findViewById(R.id.gettablecolumnslist);
getTableColumnsList.setOnClickListener(getTableColumnsListClick);
//插入一条数据
Button insertTable=(Button)findViewById(R.id.inserttable);
insertTable.setOnClickListener(insertTableClick);
//查询一条数据
Button queryTable=(Button)findViewById(R.id.querytable);
queryTable.setOnClickListener(queryTableClick);
//更新一条数据
Button updateTable=(Button)findViewById(R.id.updatetable);
updateTable.setOnClickListener(updateTableClick);
//删除一条数据
Button delete=(Button)findViewById(R.id.delete);
delete.setOnClickListener(deleteClick);
//显示结果
show=(TextView)findViewById(R.id.showresult);
/************对按钮事件进行操作的事件响应****************/
//创建一个数据库
OnClickListener createDatabaseClick=new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
//创建一个名为students.db的数据库,主要是生成另外一个数据库以示区别
openOrCreateDatabase("students.db",
SQLiteDatabase.CREATE_IF_NECESSARY, null);
show.setText("创建的数据库路径为\n"
+getDatabasePath("students.db"));
//创建一个应用程序数据库的个数(list)的事件响应
OnClickListener getDatabaseListClick=new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
String []dblist=dao.getDatabasesList();
String rs="";
for(String s:dblist){
rs+=s+"\n";
show.setText("数据库名称为:\n"+ rs);
//重命名一个数据库的事件响应
OnClickListener renameDatabaseClick=new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
//创建一个data.db的数据库,并命名为renamedata.db数据库
openOrCreateDatabase("data.db", SQLiteDatabase.CREATE_IF_NECESSARY, null);
File f = getDatabasePath("data.db");
File renameFile=getDatabasePath("renamedata.db");
boolean b=f.renameTo(renameFile);
show.setText("data.db已经重命名为renamedata.db");
show.setText("无法重命名");
//删除一个数据库的事件响应
OnClickListener removeDatabaseClick=new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
/删除students.db数据库
dao.dropDatabase("students.db");
//重新获取数据库名称
String []dblist=dao.getDatabasesList();
String rs="";
for(String s:dblist){
rs+=s+"\n";
show.setText("数据库students.db已经删除\n现在数据库的名称为:\n"+rs);
//创建一个表的事件响应
OnClickListener createTableClick=new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
//在user.db数据库中插入mytable表,并添加相应的字段
dao.createTable(mDb, "mytable");
show.setText("数据库students.db已经创建mytable表\n");
//获取一个数据库的所有表个数(list)的事件响应
OnClickListener getTablesListClick=new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
//显示所有的表的数据
String tableNames=dao.getTablesList(mDb);
show.setText(tableNames);
//重命名一个表的事件响应
OnClickListener renameTableClick=new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
//创建一个testtable的表
dao.createTable(mDb, "testtable");
//将testtable重命名为newtable
boolean b=dao.alterTableRenameTable(mDb, "testtable", "newtable");
if(b)show.setText("testtable已经重命名为\nnewtable表\n");
else show.setText("newtable已经存在\n请删除(drop table)后重试");
//删除一个表的事件响应
OnClickListener dropTableClick=new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
newtable表
dao.dropTable(mDb, "newtable");
//显示所有的表的数据
String tableNames=dao.getTablesList(mDb);
show.setText("newtable已经删除\n现在表名称为:\n"+tableNames);
//修改一个表(给表添加一个字段)的事件响应
OnClickListener addTableColumnClick=new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
//默认添加一个password字段,类型为varchar,长度为30
boolean b=dao.alterTableAddColumn(mDb, "mytable", "password", " varchar(30)");
if(b)show.setText("已经添加password字段\n字符类型为:varchar\n长度为:30");
else show.setText("mytable表中password字段已经存在");
//获取一个表的所有列的名称事件响应
OnClickListener getTableColumnsListClick=new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
String str=dao.getTableColumns(mDb);
show.setText("mytable表的列名:\n"+str);
//对一个表添加一个数据的事件响应
OnClickListener insertTableClick=new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
User user=new User();
user.setUsername("Mr.Young");
user.setInfo("好学生");
dao.insert(mDb, "mytable", user);
Cursor c=dao.getAllData(mDb, "mytable");
if(c.moveToLast()){
String id=c.getString(0);
String username=c.getString(1);
String info=c.getString(2);
show.setText("最新添加的一条数据:\n"+"id:"+id+"\nusername:"+username+"\ninfo:"+info);
//查询一个表的所有数据记录的事件响应
OnClickListener queryTableClick=new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
//默认查询mytable所有数据
Cursor c=dao.getAllData(mDb, "mytable");
String s="";
int columnsSize=c.getColumnCount();
String []columns=c.getColumnNames();
String columnsName="";
//获取表头
for (String col : columns) {
columnsName+=col+"\u0020 \u0020";
//获取表的内容
while(c.moveToNext()){
for(int i=0;i&columnsSi++){
s+=c.getString(i)+"\u0020 \u0020";
s+="&br&";
show.setText(Html.fromHtml("&h5&"+columnsName+"&/h5&"+s));
//更新一个表的数据的事件响应
OnClickListener updateTableClick=new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
Cursor c=dao.getAllData(mDb, "mytable");
if(c.moveToFirst()){
int first=Integer.valueOf(c.getString(0));
//默认修改第一条记录
dao.update(mDb, "mytable", first, "Yong Ming", "学习成绩优异");
Cursor u=dao.queryById(mDb, "mytable", first);
u.moveToFirst();
show.setText("id为:"+first+"的记录已经修改:\nid:"+first+"\nusername:"+u.getString(1)+"\ninfo:"+u.getString(2));
show.setText("没有要更新的记录!请添加数据后再作修改");
//删除一个表的一条数据的事件响应
OnClickListener deleteClick=new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
Cursor c=dao.getAllData(mDb, "mytable");
if(c.moveToLast()){
int last=Integer.valueOf(c.getString(0));
//默认删除最后一条记录
boolean b=dao.delete(mDb, "mytable", last);
show.setText("成功删除id为:\n"+last+"的记录!");
show.setText("没有要删除的记录!");
//退出时关闭数据库
public void finish() {
// TODO Auto-generated method stub
super.finish();
mDb.close();
/*******************
* 对Sqlite数据库进行操作的类
* ****************/
class SQLiteDatabaseDao {
public SQLiteDatabaseDao(){
mDb=openOrCreateDatabase("users.db",
SQLiteDatabase.CREATE_IF_NECESSARY, null);
/************ 对数据库的操作 ***********************/
// 获取所有数据库的名称
public String[] getDatabasesList() {
return databaseList();
// 创建一个数据库
public void createDatabase(String db) {
openOrCreateDatabase(db, SQLiteDatabase.CREATE_IF_NECESSARY, null);
// 删除一个数据库
public void dropDatabase(String db) {
deleteDatabase(db);
} catch (SQLException e) {
Toast.makeText(getApplicationContext(), "删除数据库失败",
Toast.LENGTH_LONG).show();
/************ 对数据库的表的属性添加修改操作 ***********************/
// 获取某个数据库的表的名称
public String getTablesList(SQLiteDatabase mDb) {
Cursor c = mDb
.rawQuery(
"select name from sqlite_master where type='table' order by name",
String str="";
while (c.moveToNext()) {
str+=c.getString(0)+"\n";
return "表的名称为:\n"+
// 创建一个表,默认创建一个username info字段的表,可以在后面的代码中添加相应的列
public void createTable(SQLiteDatabase mDb, String table) {
mDb.execSQL("create table if not exists "+table+
" (id integer primary key autoincrement, "
+ "username text not null, info text not null);");
} catch (SQLException e) {
Toast.makeText(getApplicationContext(), "数据表创建失败",
Toast.LENGTH_LONG).show();
// 删除一个表
public void dropTable(SQLiteDatabase mDb, String table) {
mDb.execSQL("drop table if exists " + table);
} catch (SQLException e) {
Toast.makeText(getApplicationContext(), "数据表删除失败",
Toast.LENGTH_LONG).show();
// 修改表--重命名表名
public boolean alterTableRenameTable(SQLiteDatabase mDb, String oldTable,
String newTableName) {
mDb.execSQL("alter table " + oldTable + " rename to
+ newTableName+";");
} catch (SQLException e) {
Toast.makeText(getApplicationContext(), "数据表重命名失败",
Toast.LENGTH_LONG).show();
// 修改表--添加一列
// @table 需要修改的table名
// @column 添加的列的名称
// @type 列的类型,如text,varchar等
public boolean alterTableAddColumn(SQLiteDatabase mDb, String table,
String column, String type) {
mDb.execSQL("alter table
" + table + " add column " + column
+ type + " ;");
} catch (SQLException e) {
Toast.makeText(getApplicationContext(), "数据表添加失败",
Toast.LENGTH_LONG).show();
// 获取表的列的名称
public String getTableColumns(SQLiteDatabase mDb) {
Cursor c=dao.getAllData(mDb, "mytable");;
String []columns=c.getColumnNames();
String str="";
for (String s : columns) {
str+=s+"\n";
/************ 对数据库的表数据增删改查操作 ***********************/
// 添加一条数据,默认只向username和info字段添加数据
public long insert(SQLiteDatabase mDb,String table,User user) {
ContentValues values = new ContentValues();
values.put("username", user.getUsername());
values.put("info", user.getInfo());
return mDb.insert(table, null, values);
* 删除一条数据
public boolean delete(SQLiteDatabase mDb,String table,int id) {
String whereClause =
String[] whereArgs = new String[] {String.valueOf(id)};
mDb.delete(table, whereClause, whereArgs);
}catch (SQLException e) {
Toast.makeText(getApplicationContext(), "删除数据库失败",
Toast.LENGTH_LONG).show();
* 修改一条数据
public void update(SQLiteDatabase mDb,String table,int id,String username,String info)
ContentValues values = new ContentValues();
values.put("username", username);
values.put("info", info);
String whereClause = "id=?";
String[] whereArgs = new String[] { String.valueOf(id) };
mDb.update(table, values, whereClause, whereArgs);
public Cursor queryById(SQLiteDatabase mDb,String table,int id) {
// 第一个参数String:表名
// 第二个参数String[]:要查询的列名
// 第三个参数String:查询条件
// 第四个参数String[]:查询条件的参数
// 第五个参数String:对查询的结果进行分组
// 第六个参数String:对分组的结果进行限制
// 第七个参数String:对查询的结果进行排序
String[] columns = new String[] { "id", "username", "info" };
String selection = "id=?";
String[] selectionArgs = { String.valueOf(id) };
String groupBy =
String having =
String orderBy =
return mDb.query(table, columns, selection,
selectionArgs, groupBy, having, orderBy);
public Cursor getAllData(SQLiteDatabase mDb,String table) {
//遍历表所有数据
return mDb.rawQuery("select * from "+table, null);
/** 如果需要返回指定的列,则执行以下语句
String[] columns = new String[] { "id","username", "info" };
// 调用SQLiteDatabase类的query函数查询记录
return mDb.query(table, columns, null, null, null, null,
(本文来自互联网,不代表搜站(/)的观点和立场)本站所有内容来自互联网,若本站收录的信息无意侵犯了贵司版权,请给我们来信(),我们会及时处理和回复,谢谢编辑推荐最近更新用C语言做个sqlite数据库~_百度知道&&&&SQLite数据库的增删改查demo
&SQLite数据库的增删改查demo
今天学习数据库的增删改查
调用 SQLiteOpenHelper的 getReadableDatabase()或 getWritableDatabase()方法都会返回一个SQLiteDatabase对象,
借助这个对象就可以对数据进行 CRUD 操作了。
若举报审核通过,可奖励20下载分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
VIP下载&&免积分60元/年(1200次)
您可能还需要
Q.为什么我点的下载下不了,但积分却被扣了
A. 由于下载人数众多,下载服务器做了并发的限制。若发现下载不了,请稍后再试,多次下载是不会重复扣分的。
Q.我的积分不多了,如何获取积分?
A. 获得积分,详细见。
完成任务获取积分。
论坛可用分兑换下载积分。
第一次绑定手机,将获得5个C币,C币可。
关注并绑定CSDNID,送10个下载分
下载资源意味着您已经同意遵守以下协议
资源的所有权益归上传用户所有
未经权益所有人同意,不得将资源中的内容挪作商业或盈利用途
CSDN下载频道仅提供交流平台,并不能对任何下载资源负责
下载资源中如有侵权或不适当内容,
本站不保证本站提供的资源的准确性,安全性和完整性,同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
移动开发下载排行
您当前C币:0&&&可兑换 0 下载积分
兑换下载分:&
消耗C币:0&
立即兑换&&
兑换成功你当前的下载分为 。前去下载资源
你下载资源过于频繁,请输入验证码
如何快速获得积分?
你已经下载过该资源,再次下载不需要扣除积分
SQLite数据库的增删改查demo
所需积分:0
剩余积分:0
扫描微信二维码精彩活动、课程更新抢先知
VIP会员,免积分下载
会员到期时间:日
剩余下载次数:1000
SQLite数据库的增删改查demo
剩余次数:&&&&有效期截止到:
你还不是VIP会员VIP会员享免积分 . 专属通道极速下载
VIP下载次数已满VIP会员享免积分 . 专属通道极速下载,请继续开通VIP会员
你的VIP会员已过期VIP会员享免积分 . 专属通道极速下载,请继续开通VIP会员(window.slotbydup=window.slotbydup || []).push({
id: '2013896',
container: s,
size: '960,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2013898',
container: s,
size: '960,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2013900',
container: s,
size: '960,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2013902',
container: s,
size: '960,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2013904',
container: s,
size: '960,90',
display: 'inlay-fix'
当前位置:&>&&>&&>& >android数据库database增删改查功能
android数据库database增删改查功能
软件大小:558.47 KB
源码类型:
源码语言:
软件等级:
官方网站:
源码演示:
运行环境:/android/ipad
更新时间:
&&温馨提示:本资源由整理提供下载转载时请留下链接说明:android数据库database增删改查功能,该项目实现了Android SQLite数据库增删改查,通过点击“新建数据库”按钮来创建数据库,点击“添加”按钮来向数据库中加入一条数据,具体的如效果图所示。
技术支持:如果遇到技术上的问题可以到我们相关网站进行咨询和解决,,,,,,。
点数不足:& &|& &下载总数:0
(window.slotbydup=window.slotbydup || []).push({
id: '2013932',
container: s,
size: '960,90',
display: 'inlay-fix'
Copyright &
Corporation662p开源网版权所有
客户端下载:&&
客服热线:9:00-18:00}

我要回帖

更多关于 数据库增删改查 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信