---恢复内容开始---

一.建表

 //通过SQLiteDatabase 创建数据库stu.db3
final SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase(this.getFilesDir().toString()+"/stu.db3", null);
db.execSQL("CREATE TABLE student(id INTEGER PRIMARY KEY, name VARCHAR(50), score INTEGER)"); //创建student学生表

openOrCreateDataBase()方法用来打开或创建数据库。这是一个静态方法,不能用new 创建而是用类名调用。

public static SQLiteGDataBase openOrCreateDataBase(String path,SQLiteDataBase.CusorFactory factory)

第一个参数为数据库文件路径(包括文件名) 可用getFilesDir()来获取路径

第二个参数 一般默认null来使用默认的GursorFactory的对象

二.数据插入

/*
*1 保存操作
*/
save.setOnClickListener(new View.OnClickListener() { @Override
public void onClick(View arg0) {
/*
* 获取数据
*/
String i = id.getText().toString();
String n = name.getText().toString();
String s = score.getText().toString();
//执行插入语句
try {
db.execSQL("INSERT INTO student VALUES(?,?,?)", new String[]{i,n,s}); // 格式化
} catch (Exception e) { //插入失败
Toast.makeText(MainActivity.this, "该学号已经存在", Toast.LENGTH_SHORT).show();
return;
}
Toast.makeText(MainActivity.this, "保存成功", Toast.LENGTH_SHORT).show();
}
});

三、数据读取

        /*
*2 读取操作并用simpleAdapter在UI界面显示
*/
read.setOnClickListener(new View.OnClickListener() { @Override
public void onClick(View arg0) { /*
* 绑定数据到listview
*/
ArrayList<HashMap<String, Object>> listItem = new ArrayList<HashMap<String, Object>>(); //从数据库获取数据 添加到 listItem上
Cursor cursor = db.rawQuery("SELECT * FROM student", null);
while(true) { if(cursor.moveToNext() == false) {
break;
} HashMap<String, Object> map = new HashMap<String, Object>();
map.put("itemId", cursor.getInt(0));
map.put("itemName", cursor.getString(1));
map.put("itemScore", cursor.getInt(2));
listItem.add(map);
} //生成适配器 它是数据和界面交互的桥梁 使得数据库SQLite的内容显示在图形用户界面
final SimpleAdapter listItemAdapter = new SimpleAdapter(MainActivity.this,
listItem,R.layout.list_item,
new String[]{"itemId","itemName","itemScore"},
new int[]{R.id.itemId,R.id.itemName,R.id.itemScore}); //添加并显示
list.setAdapter(listItemAdapter); /*
* 3 ListView中列表的点击事件
*/
list.setOnItemClickListener(new OnItemClickListener() { @Override
public void onItemClick(AdapterView<?> arg0, View view,
int position, long arg3) {
// TODO Auto-generated method stub
Map<String,Object> m = (Map<String,Object>)listItemAdapter.getItem(position);
id.setText(m.get("itemId").toString().trim());
name.setText(m.get("itemName").toString().trim());
score.setText(m.get("itemScore").toString().trim()); index = m.get("itemId").toString().trim(); //保存选中的用户id 用于删除和修改 } }); }
});

Android中list与Map<String ,Object>及SimpleAdapter用来存数数据并显示  http://www.360doc.com/content/14/0407/09/12146850_366936905.shtml

SimpleAdapter与listView介绍链接地址1.http://blog.csdn.net/xing1716263268/article/details/7912665

2.  http://blog.csdn.net/conowen/article/details/7294230

四、数据更新

 /*
*更新操作
*/
update.setOnClickListener(new View.OnClickListener() { @Override
public void onClick(View arg0) { String updateName = name.getText().toString().trim();
String updateScore = score.getText().toString().trim();
String sql = "UPDATE student SET name=?,score=? whrer id= ?";
if(index != null){
try{
Toast.makeText(MainActivity.this, updateName+"--"+updateScore, Toast.LENGTH_SHORT).show();
db.execSQL(sql,new String[]{updateName,updateScore,index});
index = null; //索引重新设置为空
Toast.makeText(MainActivity.this, "修改成功", Toast.LENGTH_SHORT).show(); }catch(Exception e)
{
Toast.makeText(MainActivity.this, "修改失败", Toast.LENGTH_SHORT).show(); }
} }
});

五、数据删除

  /*
* 删除操作
*/
delete.setOnClickListener(new View.OnClickListener() { @Override
public void onClick(View arg0) {
if(index!=null) { //已经选中某条记录
//执行插入语句
db.execSQL("DELETE FROM student WHERE id=?", new String[]{index});
index = null; //索引重新设置为null Toast.makeText(MainActivity.this, "删除成功", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(MainActivity.this, "请选中要删除的数据", Toast.LENGTH_SHORT).show();
}
}
});

Android利用数据库传送数据的更多相关文章

  1. Android利用Filter过滤数据

    MainActivity如下: package cc.testfilterable; import java.util.ArrayList; import java.util.HashMap; imp ...

  2. ajaxl利用json 传送数据的 三种提交方式?

    一.在servlet类中添加几个javabean对象,放置数据. package com.aaa.servlet; import java.io.IOException; import java.ut ...

  3. Android打开数据库读取数据

    打开数据库读取数据 private MyDatabaseHelper dbHelper; dbHelper=new MyDatabaseHelper(this,"List.db", ...

  4. Android --------- 利用SharedPreferences存取数据

    //向SharedPreferences中存放数据 //1.定义SharedPreferences对象,通过getSharedPreferences方法得到 SharedPreferences sp ...

  5. android 通过访问 php 接受 or 传送数据

    先说传送数据,可以在 利用 php 代替传送,直接把 访问的url加上 xxx.php?informatin=xxxxxx 就行了 接收的看代码吧,详细注释. 首先是 我自己定义的php 文件 < ...

  6. Android开发之利用SQLite进行数据存储

    Android开发之利用SQLite进行数据存储 Android开发之利用SQLite进行数据存储 SQLite数据库简单介绍 Android中怎样使用SQLite 1 创建SQLiteOpenHel ...

  7. [ios]利用alertView 插入数据都数据库。笔记

    利用alertView 插入数据都数据库 -(void)addItemToList { UIAlertView *alter=[[UIAlertViewalloc]initWithTitle:@&qu ...

  8. 利用SQl对数据库实行数据拆分与组合

    利用SQl对数据库实行数据拆分与组合实现提供以下几种方案: 方法一: WITH CTE AS (SELECT A.Id,A.[Uid],UserName FROM (SELECT A.[id], RE ...

  9. Android利用Fiddler进行网络数据抓包

    最新最准确内容建议直接访问原文:Android利用Fiddler进行网络数据抓包 主要介绍Android及IPhone手机上如何进行网络数据抓包,比如我们想抓某个应用(微博.微信.墨迹天气)的网络通信 ...

随机推荐

  1. Windows-006-映射网络驱动器图文详解

    此文主要讲述 Win7 中,如何映射网络驱动器,一般用于网络共享时.敬请亲们参阅,若有不足之处,敬请大神指正,不胜感激! 打开计算机,选择工具栏中的 映射网络驱动器,依据下图中的操作进行映射网络驱动器 ...

  2. 一些Perl例程(全部手打并执行过)

    #-1-变量使用,打印#!/usr/local/bin/perl$value=100+30+3+8;print("Value=",$value,"\n"); # ...

  3. NSNumber,NSValue和NSData

    我们在编码中,很多时候需要将C里面原生的数据封装成对象,这样可以用NSDictionary或者NSArray来存取访问.尤其是一些做适配的情况下,这种封装是不可避免的.Objective-C提供了不少 ...

  4. python模块(os)

    os模块 os模块提供了许多与操作系统交互的接口 os.getcwd() -> str # 返回当前路径, 相当于pwd os.chdir("dirname") -> ...

  5. 设计视图不能用于 x64 和 ARM 目标平台

    设计视图不能用于 x64 和 ARM 目标平台

  6. 使用HttpClient抓取网站首页

    HttpClient是Apache开发的第三方Java库,可以用来进行网络爬虫的开发,相关API的可以在http://hc.apache.org/httpcomponents-client-ga/ht ...

  7. COM学习笔记

    2015-10-22 10:24 在第八章学习Aggregation的时候搞晕了,所以就建了一个Workspace名为"COMAggregationDemo"来调试一下,使用的源码 ...

  8. swift 同步加载图片

    import UIKit @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { var window: ...

  9. Python:使用pymssql批量插入csv文件到数据库测试

    并行进程怎么使用? import os import sys import time def processFunc(i): time.sleep(10-i) print i if __name__= ...

  10. 如何抠PSD素材中的图片

    在网上经常可以找到一些好看呢的PSD素材,如何才能将这些素材抠出来 存成一张张的png图片呢? 在PhotoShop中 1·隐藏无用的图层,然后窗口中仅剩需要看到的那个素材图 2·用工具选择该区域(注 ...