обновяване на таблицата с база данни SQLite според Android spinner

Вече направих своя код въз основа на предложението на WIllJBD

Искам таблицата да опреснява данните, когато щракне върху нея според спинера, но тостът ми даде „Грешка в базата данни“. Ето кода за избрания артикул на spinner

public void onItemSelected(AdapterView<?> parent, View view, int position,long id) {
        String tam = spDealer.getSelectedItem().toString();
        String dealerID = in.getDealID(tam);
        String queryrow = in.MatchDealerID(dealerID);

        if (queryrow == dealerID)
        {
            Cursor c = in.getViewInfoBilling(queryrow);
            int rows = c.getCount();
            int cols = c.getColumnCount();
            c.moveToFirst();

            for (int i = 0; i < rows; i++) {
                  TableRow row = new TableRow(this);
                  row.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));        
                  // inner for loop
                  for (int j = 0; j < cols; j++) 
                  {
                    TextView tv = new TextView(this);
                    tv.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,
                    LayoutParams.WRAP_CONTENT));
                    tv.setText(c.getString(j));
                    row.addView(tv);
                  }
                  c.moveToNext();
                  mytable.addView(row);
              }
        in.close();
        } else
        {
            Toast.makeText(Billing.this, "Data Error!!",Toast.LENGTH_LONG).show();
        }
    }

И ето моят метод:

public Cursor getViewInfoBilling(String id){
    Cursor mcursor = db.rawQuery("SELECT BillDate,SODashboardNo, SODashboardAmount " +
    "FROM SODashboard, Bill WHERE SODashboard.SODashboardNo = Bill.TampSODashboardNo " +
    "AND SODashboard.DealerID = id", null);
    return mcursor;}

public String getDealID(String dealName) throws SQLException{
    Cursor mCursor = db.query(Dealer_TABLE, null, ""+Col_DealerName+"=?", new String[]{dealName}, null, null,null);
    if(mCursor.getCount()<1){
    mCursor.close();
    return "Not Exist";
    }
    mCursor.moveToFirst();
    String tampDealID = mCursor.getString(mCursor.getColumnIndex(Col_DealerID));
    mCursor.close();
    return tampDealID;}

public String MatchDealerID(String tam){
        String matchquery = "SELECT DealerID FROM SODashboard, Dealer " +
                "WHERE SODashboard.TampDealerIDSOD = tam";
        return matchquery;
    }

Идентификационният номер, избран на spinner, вече не е същият като ID, който е в DB? Вече създадох MatchDealerID и getDealID, за да ги сравня.. какво трябва да направя, за да накарам таблицата да се опреснява след щракване? Моля, помогнете ми да реша този проблем... благодаря


person Lynx    schedule 29.08.2014    source източник
comment
Прочетете как да сравнявате низове в java. If (queryrow == dealerID)??   -  person Deucalion    schedule 29.08.2014


Отговори (1)


Има нещо нередно в този метод.

public Cursor getViewInfoBilling(String id){
Cursor mcursor = db.rawQuery("SELECT BillDate,SODashboardNo, SODashboardAmount " +
"FROM SODashboard, Bill WHERE SODashboard.SODashboardNo = Bill.TampSODashboardNo " +
"AND SODashboard.DealerID =" + id, null);

//OR
/*
Cursor mcursor = db.rawQuery("SELECT BillDate,SODashboardNo, SODashboardAmount " +
"FROM SODashboard, Bill WHERE SODashboard.SODashboardNo = Bill.TampSODashboardNo " +
"AND SODashboard.DealerID =?", new String[] { id });    
*/
return mcursor;}

Има две версии, опитайте и двете, успех

person DareDevil    schedule 29.08.2014