---
title: "Fel i funktion, retuneras alltid false"
type: "forum-thread"
url: "https://www.webforum.nu/amne/java/128310-fel-i-funktion-retuneras-alltid-false"
topic: "Java"
topic_url: "https://www.webforum.nu/amne/java"
author: "Elvis"
published: "2005-05-16T09:41:30.000Z"
updated: "2005-05-19T10:34:42.000Z"
replies: 4
views: 276
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/java/128310-fel-i-funktion-retuneras-alltid-false"
---

# Fel i funktion, retuneras alltid false

## #1 — Elvis, 2005-05-16T09:41Z

Varför returnes alltid ett 'false' i funktionen nedan? Ska  retunera 'true' om det blir mer än en träff i sql-satsen. Finns ingen träff ska 'false' retuneras.

Hur gör jag för att räkna/kontrollera antalet träffar eller lagringar i ett ResultSet?

```
public boolean FinnsNamn(String strValtNamn)
{
	check=false;

		try
		{

		Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
		Connection con = DriverManager.getConnection("jdbc:odbc:namnlistan");
		Statement stmt = con.createStatement();

		ResultSet rs = stmt.executeQuery("Select * From NAMNLISTA where NAMN='strValtNamn'");

		while(rs.next())
		{
			check=true;
		}

		con.close();

               }

		catch(SQLException ex)
		{
			System.err.println("SQLException: " + ex.getMessage());
		}

		catch(java.lang.ClassNotFoundException e)
		{
			System.err.print("ClassNotFoundException: ");
			System.err.println(e.getMessage());
		}

		return check;

 }
```

Permalänk: https://www.webforum.nu/p/128310

## #2 — Lime, 2005-05-16T15:38Z

Felet ligger i den här raden:

```
ResultSet rs = stmt.executeQuery("Select * From NAMNLISTA where NAMN='strValtNamn'");
```

Den söker ALLTID efter *strValtNamn* i databasen...

Det bör stå såhär:

```
ResultSet rs = stmt.executeQuery("Select * From NAMNLISTA where NAMN='"+strValtNamn + "'");
```

Notera att det är NAMN=enkelfnutt dubbelfnutt plus strValtNamn plus dubbelfnutt enkelfnutt.

Ännu bättre är att skriva såhär:

```
PreparedStatement stmt = con.createPreparedStatement(("Select * From NAMNLISTA where NAMN=?");

stmt.setString(1, strValtNamn);

ResultSet rs = stmt.execute();
```

Permalänk: https://www.webforum.nu/p/1613188

## #3 — Elvis, 2005-05-16T17:36Z

Ok, då förstår jag. Tack för dina tydliga exempel!

När jag kikar i "manualen, så kan jag inte hitta någon metod eller properti för att få antalet poster i en ResultSet.
<http://java.sun.com/j2se/1.4.2/docs/api/java/sql/ResultSet.html>
Finns det något snabbkommando eller liknande för att få ut antalet poster, då jag tycker det inte känns bra att läsa igenom hela ResulSet för att räkna posterna?

Permalänk: https://www.webforum.nu/p/1613236

## #4 — spango, 2005-05-17T07:20Z

Använd COUNT(\*)

```
PreparedStatement stmt = con.createPreparedStatement("Select COUNT(*) as antal_poster From NAMNLISTA where NAMN=?");
stmt.setString(1, strValtNamn);
ResultSet rs = stmt.execute();
rs.first(); // gå till första (och enda) raden
int antal = rs.getInt("antal_poster"); // plocka fram resultatet av count(*)
```

Permalänk: https://www.webforum.nu/p/1613390

## #5 — Elvis, 2005-05-19T10:34Z

Tack för svaren.

Permalänk: https://www.webforum.nu/p/1614357

---

Tråden på webben: https://www.webforum.nu/amne/java/128310-fel-i-funktion-retuneras-alltid-false
