str=check.getText().toString();
Cursor cur=sqld.rawQuery("select * from userid where id=?;",new String[]{str});这里是会报错的,因为str的值是string类型的,而数据库里面筛选的id,是整形的。那要怎么样才能让str获取到整形的?

解决方案 »

  1.   

    数据库操作语言坑定是string类型啊,
    但是你可以使用ContentValue来请求数据
    ContentValues的用法
    https://www.cnblogs.com/rayray/p/3410204.html
      

  2.   

    String Id="12";
    Cursor cursor = sdb.rawQuery("SELECT * FROM AviationInfo where _id=?;",
                    new String[] {Id});我这么写没有报错啊,你看看是不是你这里应该和我一样应该把id写成_id,或者说你这个userid的表名不对
      

  3.   


    id 和_id有啥区别?我数据库里面名称是id。错误提示就是string类型获取不到整形的值
      

  4.   

    直接给你增删改查的
    package com.example.zth.seven.five;import android.content.ContentValues;
    import android.content.Context;
    import android.database.Cursor;
    import android.database.sqlite.SQLiteDatabase;
    import android.util.Log;/**
     * Created by ZTH on 2018/3/17.
     */public class SQLiteUtil {    private Context context;
        private SQLiteDatabase db;    public SQLiteUtil(Context context){
            this.context = context;
            StuDBHelper dbHelper = new StuDBHelper(context,"stu_db",null,1);
    //得到一个可写的数据库
            db =dbHelper.getReadableDatabase();
        }    public void closeSQL(){
            if(db != null&& db.isOpen()){
                db.close();
            }    }    public void initSQL(){
            //创建StuDBHelper对象
            StuDBHelper dbHelper = new StuDBHelper(context,"stu_db",null,1);
    //得到一个可读的SQLiteDatabase对象
            SQLiteDatabase db =dbHelper.getReadableDatabase();
        }    public void upgradeSQL(){
    // 数据库版本的更新,由原来的1变为2
            StuDBHelper dbHelper = new StuDBHelper(context,"stu_db",null,2);
            SQLiteDatabase db =dbHelper.getReadableDatabase();
        }
        public void deleteSQL(){        db.beginTransaction();  //手动设置开始事务
            try{
                //批量处理操作
                String whereClauses = "id=?";
                String [] whereArgs = {String.valueOf(1)};
    //调用delete方法,删除数据
                db.delete("stu_table", whereClauses, whereArgs);
                db.setTransactionSuccessful(); //设置事务处理成功,不设置会自动回滚不提交
            }catch(Exception e){
            }finally{
                db.endTransaction(); //处理完成
            }
        }    public void insertSQL(){
            db.beginTransaction();  //手动设置开始事务
            try{
                //批量处理操作
    //生成ContentValues对象 //key:列名,value:想插入的值
                ContentValues cv = new ContentValues();
    //往ContentValues对象存放数据,键-值对模式
                cv.put("id", 1);
                cv.put("sname", "xiaoming");
                cv.put("sage", 21);
                cv.put("ssex", "male");
    //调用insert方法,将数据插入数据库
                db.insert("stu_table", null, cv);
                db.setTransactionSuccessful(); //设置事务处理成功,不设置会自动回滚不提交
            }catch(Exception e){
            }finally{
                db.endTransaction(); //处理完成
            }
        }
        public void updateSQL(){
            db.beginTransaction();  //手动设置开始事务
            try{
                //批量处理操作
                ContentValues cv = new ContentValues();
                cv.put("sage", "23");
    //where 子句 "?"是占位符号,对应后面的"1",
                String whereClause="id=?";
                String [] whereArgs = {String.valueOf(1)};
    //参数1 是要更新的表名
    //参数2 是一个ContentValeus对象
    //参数3 是where子句
                db.update("stu_table", cv, whereClause, whereArgs);
                db.setTransactionSuccessful(); //设置事务处理成功,不设置会自动回滚不提交
            }catch(Exception e){
            }finally{
                db.endTransaction(); //处理完成
            }
        }    public void updateSQL(int sum){
            db.beginTransaction();  //手动设置开始事务
            try{
                //批量处理操作
                ContentValues cv = new ContentValues();
                cv.put("sage", ""+sum);
    //where 子句 "?"是占位符号,对应后面的"1",
                String whereClause="id=?";
                String [] whereArgs = {String.valueOf(1)};
    //参数1 是要更新的表名
    //参数2 是一个ContentValeus对象
    //参数3 是where子句
                db.update("stu_table", cv, whereClause, whereArgs);
                db.setTransactionSuccessful(); //设置事务处理成功,不设置会自动回滚不提交
            }catch(Exception e){
            }finally{
                db.endTransaction(); //处理完成
            }
        }    public void querySQL(){
    //参数1:表名
    //参数2:要想显示的列
    //参数3:where子句
    //参数4:where子句对应的条件值
    //参数5:分组方式
    //参数6:having条件
    //参数7:排序方式
            db.beginTransaction();  //手动设置开始事务
            try{
                //批量处理操作
                Cursor cursor = db.query("stu_table", new String[]{"id","sname","sage","ssex"}, "id=?", new String[]{"1"}, null, null, null);
                while(cursor.moveToNext()){
                    String name = cursor.getString(cursor.getColumnIndex("sname"));
                    String age = cursor.getString(cursor.getColumnIndex("sage"));
                    String sex = cursor.getString(cursor.getColumnIndex("ssex"));
                    Log.v("zzw","query------->" + "姓名:"+name+" "+"年龄:"+age+" "+"性别:"+sex);
                }
                db.setTransactionSuccessful(); //设置事务处理成功,不设置会自动回滚不提交
            }catch(Exception e){
            }finally{
                db.endTransaction(); //处理完成
            }
        }
    }
      

  5.   


    这个获取的id也是string的,可以改成整形的?