2014-08-29 36 views
0

我已经做基于WIllJBD's suggestion刷新SQLite数据库表根据Android的微调

我的代码我想表刷新数据时,其根据微调点击,但我敬酒了“数据库错误”。下面是对微调所选项目的代码

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

心不是在微调已经与DB的ID,多数民众赞成相同选择的ID?我已经创建了MatchDealerID和getDealID来比较它们。我应该怎么做才能使表单刷新后刷新?请帮我解决这个问题......谢谢

+0

了解如何在Java中比较字符串。 “如果(queryrow == dealerID)”?? – Deucalion 2014-08-29 06:04:26

回答

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

有两个版本,都试一下,有好运气