# einfache Datenbankabfrage ohne erstes Element



## loogi (8. Jun 2007)

hallo,

ich bekomme wenn ich eine normale Datenabfrage mache alle Elemente der DB. 
Speichere ich allerdings die Elemente in einem Array, so bekomme ich NIE das erste Element?? versteh nicht warum.. was mache ich den falsch?

hier der code:

normale Abfrage

```
try {

			conn = DatabaseLocator.getConnection();
			st = conn.createStatement();
			res = st.executeQuery("SELECT * FROM Person WHERE p_name LIKE '%"
					 + "müller" + "%'");

			while (res.next()) {

				System.out.println(res.getString("name"));
				System.out.println(res.getString("vorname"));
			}
		} catch (SQLException r) {
			r.printStackTrace();
			System.out.println(r.getCause());
		}
	}
```

Hier mit dem Array:

```
Person[] ergebnis = new Person[200];
		
		
                        int countAR = 0;
			conn = DatabaseLocator.getConnection();
			st = conn.createStatement();
			res = st.executeQuery("SELECT * FROM  Person WHERE p_name LIKE '%"
					 + "müller" + "%'");
			if (!res.next()) {
				System.out.println("NO Person");
			}
			while (res.next()) {

				ergebnis[countAR] = new Person(res
						.getString("name"), res.getString("vorname");

				System.out.println(countAR);
				countAR++;

			}
		} catch (SQLException r) {
			r.printStackTrace();
			System.out.println(r.getCause());
		}return ergebnis;
```


----------



## SlaterB (8. Jun 2007)

if (!res.next()) { 
// erster DatenSatz ausgewählt
} 
 while (res.next()) {
// zweiter DatenSatz ausgewählt
}


du musst also vorsichtig mit diesem Aufruf sein,
Tipp: verwende nur die while-Schleife,
wenn dahinter countAr == 0 ist, dann "NO Person"


----------



## loogi (8. Jun 2007)

SlaterB hat gesagt.:
			
		

> if (!res.next()) {
> // erster DatenSatz ausgewählt
> }
> while (res.next()) {
> ...




ja stimmt super...  :toll:


----------

