Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/221.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法从数据库中插入和选择整数(Android)_Java_Android_Android Sqlite - Fatal编程技术网

Java 无法从数据库中插入和选择整数(Android)

Java 无法从数据库中插入和选择整数(Android),java,android,android-sqlite,Java,Android,Android Sqlite,MyDBClass.java // Database Name private static final String DATABASE_NAME = "Listyu"; // Table Name private static final String TABLE_COUNTRY = "paylist"; public static final String[] ALL_KEYS = new String[] {"ID","Name","Amount"}; public myDBClass

MyDBClass.java

// Database Name
private static final String DATABASE_NAME = "Listyu";

// Table Name
private static final String TABLE_COUNTRY = "paylist";
public static final String[] ALL_KEYS = new String[] {"ID","Name","Amount"};

public myDBClass(Context context) {
    super(context, DATABASE_NAME, null, DATABASE_VERSION);
}

@Override
public void onCreate(SQLiteDatabase db) {

    // Create Table Name
    db.execSQL("CREATE TABLE " + TABLE_COUNTRY +
              "(ID INTEGER PRIMARY KEY," +
              " Amount INTEGER,"+ 
              " Name TEXT(100));");
    Log.d("CREATE TABLE","Create Table Successfully.");
}

// Insert Data
public long InsertData(String name, int amnt) {
     try {
        SQLiteDatabase db;
        db = this.getWritableDatabase(); // Write Data

        ContentValues Val = new ContentValues();

        Val.put("Name", name);
        Val.put("Amount", amnt);

        long rows = db.insert(TABLE_COUNTRY, null, Val);

        db.close();
        return rows; // return rows inserted.
     }  catch (Exception e) {
        return -1;
     }

}

// Select Data
public Cursor SelectData() {
     try {
         SQLiteDatabase db;
         db = this.getReadableDatabase(); // Read Data

         Cursor cursor = db.query(TABLE_COUNTRY, new String[] { "ID AS _id, *" },null, null, null, null, null);

            if(cursor != null) {
                return cursor;
            } else {
                return null;
            }

     } catch (Exception e) {
        return null;
     }
}
Create.java

在这个类中,我插入了名称(string)和金额(int),如下所示:

String note = et.getText().toString();
String amount = ett.getText().toString();
int converted = Integer.parseInt(amount);
myDb.InsertData(note,converted);    
List.java

在这个类中,我调用列表视图中插入的所有金额,如下所示,当list.java打开时,程序不工作

myDb = new myDBClass(this);
ListView lisView1 = (ListView)findViewById(R.id.listView1); 
final Cursor c = myDb.SelectData();
lisView1.setAdapter(new CountryAdapter(this, c ));
registerForContextMenu(lisView1);

public class CountryAdapter extends CursorAdapter 
{   
        private Cursor cursor;
        public CountryAdapter(Context context, Cursor cur) {
        super(context, cur , 0);
        this.cursor = cur;


                                                      }

@Override
public void bindView(View view, Context context, final Cursor cursor) {
            // ColID
        TextView txtID = (TextView) view.findViewById(R.id.textsv);
            txtID.setText(cursor.getString(cursor.getColumnIndex("Amount")));


        }

        @Override
        public View newView(Context context, Cursor cursor, ViewGroup parent) {
            // TODO Auto-generated method stub
            LayoutInflater inflater = LayoutInflater.from(context);
            View view = inflater.inflate(R.layout.item_layout, parent, false);
            bindView(view, context, cursor);
            return view;

        }

使之类似于Val.put(“金额”和“+amnt”);如果您单步浏览应用程序,返回的光标是实际包含数据还是为空?否,没有数据插入。请打印从插入方法返回的数字。如果为负1,则不插入任何数据,并且存在一个您忽略的错误谢谢@cricket_007。顺便说一句,我没有把Amount看作int,而是处理了文本类型,效果很好;如果您单步浏览应用程序,返回的光标是实际包含数据还是为空?否,没有数据插入。请打印从插入方法返回的数字。如果为负1,则不插入任何数据,并且存在一个您忽略的错误谢谢@cricket_007。顺便说一句,我没有把Amount看作int,而是处理了文本类型,效果很好。