如何使用dbadapter将多个字符串插入sqlite表

时间:2015-03-25 12:36:37

标签: java android sqlite

我想使用dbadapter将2个字符串中的值插入表中 我可以插入一个名为' inputparticulars'到名为
的列 作为' TX_PARTICULARS'。如何从另一个字符串中插入另一个值
' inputamount'到另一列名为' TX_AMOUNT'在同一行。

public void onTxClick(View v) {
    String inputparticulars = particulars.getText().toString();
    String inputamount = amount.getText().toString();
    ContentValues contentvalues = new ContentValues();
    vivzHelper.insertTxData(inputparticulars);
}

public long insertTxData(String inputparticulars) {
    SQLiteDatabase db = helper.getWritableDatabase();
    ContentValues contentvalues = new ContentValues();
    contentvalues.put(VivzHelper.TX_PARTICULARS, inputparticulars);
    //contentvalues.put(VivzHelper.TX_AMOUNT, inputamount);
    contentvalues.put(VivzHelper.TX_DATE, Calendar.DATE);
    long id = db.insert(VivzHelper.TX_TABLE, null, contentvalues);
    return id;
}

3 个答案:

答案 0 :(得分:0)

您需要将这两个值传递给insertTxData方法。所以你可以这样改变你的方法。

public void insertTxData(String inputparticulars, String inputamount) {

  SQLiteDatabase db = helper.getWritableDatabase();
  ContentValues contentvalues = new ContentValues();
  contentvalues.put(VivzHelper.TX_PARTICULARS,inputparticulars);
  contentvalues.put(VivzHelper.TX_AMOUNT, inputamount);
  contentvalues.put(VivzHelper.TX_DATE, Calendar.DATE);
  db.insert(VivzHelper.TX_TABLE, null, contentvalues );
  db.insert(VivzHelper.TX_AMOUNT, null, inputamount);
}

答案 1 :(得分:0)

或者正如@Alex Chengalan所说,但你应该更好地传递一个对象作为参数,然后在你的insert方法中获取属性,如下所示:

这将是您的普通旧Java对象(PO​​JO)

public class YourObject{
String YourId,YourString;

public YourObject(String YourId, String YourString) {
    super();
    this.YourId= YourId;
    this.YourString= YourString;
}

public String getYourId() {
    return YourId;
}

public void setYourId(String YourId) {
    this.YourId= YourId;
}

public String getYourString() {
    return YourString;
}

public void setYourString(String YourString) {
    this.YourString= YourString;
}
}

在你的方法中插入DB:

public void insertEntry(YourObject obj)
{
    ContentValues newValues = new ContentValues();
    // Assign values for each row.
    newValues.put("dbField1", obj.getYourID());
    newValues.put("dbField2", obj.getYourString());
    db.insert(table, null, newValues);
}

正如您所看到的,您只需要在Pojo(对象类)中创建属性,然后只需在列的表中调用要分配的方法。

Pd积。 我建议学习一些ORM for android,GreenDao很好,而且很容易。

问候。

答案 2 :(得分:0)

只需将对象数组传递给方法即可。例如:

public long insertTxData(String[] inputs) {
    SQLiteDatabase db = helper.getWritableDatabase();

    ContentValues contentvalues = new ContentValues();
    contentvalues.put(VivzHelper.TX_PARTICULARS, inputs[0]);
    contentvalues.put(VivzHelper.TX_AMOUNT, inputs[1]);

    //....other parameters

    contentvalues.put(VivzHelper.TX_DATE, Calendar.DATE);
    long id = db.insert(VivzHelper.TX_TABLE, null, contentvalues);
    return id;
}