обновить таблицу базы данных SQLite в соответствии с Android Spinner

Я уже сделал свой код на основе предложения WIllJBD

Я хочу, чтобы таблица обновляла данные при нажатии на нее в соответствии с счетчиком, но мой тост выдал «Ошибка базы данных». Вот код выбранного элемента на счетчике

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;
    }

Разве идентификатор, выбранный на счетчике, уже не совпадает с идентификатором, который находится в БД? Я уже создал MatchDealerID и getDealID, чтобы сравнить их. Что мне делать, чтобы таблица обновлялась после нажатия? Пожалуйста, помогите мне решить эту проблему... спасибо


person Lynx    schedule 29.08.2014    source источник
comment
Прочитайте, как сравнивать строки в java. Если (queryrow == ID дилера)??   -  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