• 手机版

    扫码体验手机版

  • 微信公众号

    扫码关注公众号

国内首家协议开发

软芯音视解码保护平台

在线
客服

发布
需求

在线
聊天

天盟
APP

天盟APP下载

关注
微信

微信扫一扫访问
顶部

SQLite数据库 操作 删除和更改出现问题。请问下?

package helloworld.dongnaoedu.com.tianmgsqlitedemo;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;import android.os.Environment;import android.support.annotation.IdRes;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.view.View;import android.widget.EditText;import android.widget.ListView;import android.widget.RadioGroup;import android.widget.SimpleCursorAdapter;import android.widget.Toast;public class MainActivity extends AppCompatActivity {    private EditText nameEdt,ageEdt,idEdt;    private RadioGroup genderGp;    private String genderStr = "男";    private SQLiteDatabase db;    private ListView stuList;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //添加操作        //参数:环境上下文;数据库名称(如果只有一个数据库名称,那么这个数据库的位置会是在私有目录data中);        // 游标工厂,通过什么游标去操作数据,传null给我一个默认选择;版本号        //如果带SD卡路径,那么数据库位置则在指定的路径下        //~        String path = Environment.getExternalStorageDirectory() + "/stu.db";        SQLiteOpenHelper helper = new SQLiteOpenHelper(this,path,null,1) {            @Override            public void onCreate(SQLiteDatabase db) {                //创建                Toast.makeText(MainActivity.this,"数据库创建",Toast.LENGTH_SHORT).show();                //如果数据库不存在,则会调用onCreate方法,那么我们可以将表的创建工作放在这里完成                String sql = "create table info_db (_id integer primary key autoincrement," +                        "name varchar(20)," +                        "age integer," +                        "gender varhcar(4))";                db.execSQL(sql);            }            @Override            public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {                //升级                Toast.makeText(MainActivity.this,"数据库升级",Toast.LENGTH_SHORT).show();            }        };        //1、数据库存在则直接打开数据库;(所谓的打开指的是获得数据库对象)        //2、数据库不存在则创建再打开,        //3、数据库存在但版本号升高,则调用升级方法。        db = helper.getReadableDatabase();//用于获取数据库对象        nameEdt = (EditText) findViewById(R.id.name_edt);        ageEdt = (EditText) findViewById(R.id.age_edt);        idEdt = (EditText) findViewById(R.id.id_edt);        genderGp = (RadioGroup) findViewById(R.id.gender_gp);        genderGp.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {            @Override            public void onCheckedChanged(RadioGroup group, @IdRes int checkedId) {                if(checkedId == R.id.male) {genderStr = "男";}                else{ genderStr = "女";}            }        });        stuList = (ListView) findViewById(R.id.stu_list);    }    public void operate(View v){        String nameStr = nameEdt.getText().toString();        String ageStr = ageEdt.getText().toString();        String idStr = idEdt.getText().toString();        switch (v.getId()){            case R.id.insert_btn:                //db.rawQuery();  查询 select * from 表名                //db.execSQL();   添加,删除,修改,查找                //String sql = "insert into info_db(name,age,gender) values('张',12,'男')";                String sql = "insert into info_db (name,age,gender) values(?,?,?)";                db.execSQL(sql,new String[]{nameStr,ageStr,genderStr});                break;            case R.id.select_btn://                db.rawQuery(sql)                //select * from 表名 where _id = ?                String sql2 = "select * from info_db";                if(!idStr.equals("")){                    sql2 += " where _id=" + idStr;                }                //查询结果                Cursor c = db.rawQuery(sql2,null);                //SimpleCursorAdapter                //SimpleAdapter a = new SimpleAdapter                //参数3:数据源;4、表头,即键值对;5、要填充的位置;6、通知将变化的数据反映到页面上                //数据源要有下划线                SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,R.layout.item,                        c,new String[]{"_id","name","age","gender"},                        new int[]{R.id.id_item,R.id.name_item,R.id.age_item,R.id.gender_item});                stuList.setAdapter(adapter);                break;            case R.id.delete_btn:                Log.d("MainActivity", "删除 ");                String sql3 = "delete from info_tb where _id="+idStr+"";                db.execSQL(sql3);                break;            case R.id.update_btn:                Log.d("MainActivity", "更新 ");                String sql4 = "update info_tb set name=?,age=?,gender=? where _id=?";                db.execSQL(sql4,new String[]{nameStr,ageStr,genderStr,idStr});                break;        }    }}

免责声明:本内容仅代表回答会员见解不代表天盟观点,请谨慎对待。

版权声明:作者保留权利,不代表天盟立场。

使用道具 举报

全部参与1

删除语句改为:Stringsql3="deletefrominfo_tbwhere_id="'+idStr+'";

使用道具 举报

发新帖

发布任务需求已有1031167位用户正在使用天盟网服务

发布分类: *
任务预算: *
需求内容: *
手机号码: *
任务商家报价为
  • 预算价 :
  • 成交价 :
  • 完工期 :
  • 质保期 :

* 最终任务项目以服务商报价、双方协商为准!