Android在运行时创建Insert语句

时间:2011-08-04 08:45:30

标签: android

我有文件列表&值列表。我想使用DBAdapter插入记录。我尝试从此链接http://mfarhan133.wordpress.com/2010/10/24/database-crud-tutorial-for-android/

  DBAdapter dbAdapter = DBAdapter.getDBAdapterInstance(Insert.this);
  dbAdapter.openDataBase();


ContentValues initialValues = new ContentValues();
initialValues.put("name", etName.getText().toString());
initialValues.put("age", etAge.getText().toString());
long n = dbAdapter.insertRecordsInDB("user", null, initialValues);
Toast.makeText(Insert.this, "new row inserted with id = " + n, Toast.LENGTH_SHORT).show();

请有人帮我如何发送字段&他们在运行时的价值。请尽快帮助我

1 个答案:

答案 0 :(得分:0)

您可以将字段设为字符串数组&它们的值也是数组。例如:

 String[] strToFields  = new String[names.length()];
 String[] strToFieldsVal  = new String[names.length()];

    for (int k = 0; k < names.length(); k++) {
        strToFields[k] = names.getString(k);
            strToFieldsVal[k]=strVal;
    }

调用方法就像         insertTableRecords(actualtable,strToFields,strToFieldsVal);

方法应该是:

  public void insertTableRecords(String strTableName, String[] strToFields, String[] strValues){
    DBAdapter dbAdapter = DBAdapter.getDBAdapterInstance(DownlaodTableActivity.this);
    dbAdapter.openDataBase();

    ContentValues initialValues = new ContentValues();
    for(int i=0 ;i<strToFields.length;i++){
        initialValues.put(strToFields[i],strValues[i]);
    }
    long n = dbAdapter.insertRecordsInDB(strTableName, null, initialValues);
    System.out.println( " -- inserted status : --- " + n);
}

如果您需要更多帮助,请参阅此Android sqlite dynamic insert query