2014-01-30 2 views
0

아마도 도움이 될 것입니다. 매우 좋을 것입니다 .-D 그러면이 코드를 내 Activity에서 다른 텍스트 뷰로 표시하려고합니다. 그래서 작업을하지만 LogCat의 System.out.println에 메시지가 표시되지 않습니다. 어떻게 올바르게 사용할 수 있습니까?준비된 문을 사용하여 SQL 예외

public static TextView auswahl; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_beschreibung); 

    auswahl = (TextView) findViewById(R.id.txtauswahl); 
    auswahl.setText(GlossarFragment.keyword); 

    //Öffnen des SQL Befehls zum Einlesen des Eintrages 
    GetBeschreibungFromDBAsyncTask task = new GetBeschreibungFromDBAsyncTask(); 
    task.execute(); 

    List<String> res; 
    try { 
     res = task.get(); 
     for(String s:res) { 
      System.out.println("AAAAAAAAAAAAAAAA: " + s); 
     } 
    } catch (InterruptedException e) { 
     // TODO Automatisch generierter Erfassungsblock 
     e.printStackTrace(); 
    } catch (ExecutionException e) { 
     // TODO Automatisch generierter Erfassungsblock 
     e.printStackTrace(); 
    } 

} 

이 설명은 데이터베이스에서 설명을 가져 오는 작업입니다.

public class GetBeschreibungFromDBAsyncTask extends AsyncTask<String,Void,List<String>> { 

    private static String QUERY = "SELECT \"Beschreibung\" FROM \"Glossar\" WHERE \"Name\" = ?;"; 
    private String ausw; 

    @Override 
    //im Hintergrund die SQL Abfrage ausgeführt und die Ergebnisse in die Liste eingelesen 
    protected List<String> doInBackground(String... params) { 

     ausw = BeschreibungActivity.auswahl.toString(); 

     List<String> res = new ArrayList<String>(); 
     try { 
      Connection conn; 
      conn = JdbcConnectionManager.getConnection(); 
      PreparedStatement prepState = conn.prepareStatement(QUERY); 
      prepState.setString(1, ausw); 
      ResultSet resSet = prepState.executeQuery(); 

      while(resSet.next()) { 
       res.add(resSet.getString(1)); 
      } 

      prepState.close(); 
      conn.close(); 
     } catch (SQLException sqle) { 
      //bei einem Fehler in der SQL Anweisung 
      System.out.println("SSSSSSSSSSSSSSSSSSSSSSSSSSSSS"); 
      sqle.printStackTrace(); 
     } 
     return res; 
    } 

답변

0

매개 변수를 선언하는 올바른 방법은 방법, 데이터베이스의 종류를 사용하려고하면 where someColumnn = ?

처럼 ?를 사용하는 것입니다? JDBC는 아마도 로케일 SQLite db를 사용하는 최선의 방법이 아닙니다 (지원되지 않았다는 것을 알지도 못했습니다).

+0

잘 알다시피, 그것은 그런 비상 사태입니다. 학교를위한 프로젝트 일뿐입니다 .-) – user3224612

+0

더 많은 매개 변수를 사용하여 어떻게해야합니까? INSERT 쿼리 에서처럼? 개인 정적 문자열 QUERY = "INSERT INTO \"사용자 \ "(\"ID \ ", \"EMail \ ", \"Ort \ ", \"Passwort \ ") VALUES (?,?,?,?); "; – user3224612

+0

여러 개의'? '를 사용하여 setString (1, XXX), setString (2, YYYY), ...를 사용하여 값을 설정할 수 있습니다. – bwt

관련 문제