---
title: "problem med Insert"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/57169-problem-med-insert"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "andreas_lindh"
published: "2002-10-26T14:08:47.000Z"
updated: "2002-10-28T07:44:34.000Z"
replies: 11
views: 335
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/dotnet/57169-problem-med-insert"
---

# problem med Insert

## #1 — andreas_lindh, 2002-10-26T14:08Z

Har lite problem med en insert.
Jag försöker få fram id:t på den inlagda posten men får det inte att fungera.

```
sub add_cup(obj as object, e as eventargs)
        
        dim strsql as string ="insert into cuper(namn,antal_lag,antal_grupper,antal_dagar, matcher_per_lag,tid_mellan_matcher,start_tid,start_dag) values ('" + tbnamn.text + "'," + tbantallag.text + "," + antalgrupper.selecteditem.text + "," + tbantaldagar.text + "," + tbantalmatcher.text + "," + tbtidmellanmatcher.text + ",'" + tbstarttid.text + "','" + tbstartdag.text + "')"
        dim objcmd as new oledbcommand(strsql, objconn)
        objcmd.connection.open()
        objcmd.executenonquery()
        objcmd.connection.close()
        
        dim objcmd1 as new oledbcommand _
                ("SELECT @@IDENTITY", objconn)
        
        dim dr as oledbDatareader
        
        objconn.open
        dr =objcmd1.executereader
		Dim id1
		while dr.read
			 id1 = dr.getint32(id)
			response.write(id1)
		end while
       objconn.close
		
	end sub
```

Det enda som skrivs ut är 0.

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

## #2 — PatrikB, 2002-10-26T14:25Z

@@IDENTITY hämtar unika id'et för senaste inlägg i db i samma connection, dvs en öppen connection. 
ta bort stängningen du gör efter .ExecuteNonQuery() och sedan tar du bort öppningen innan du skapar readern för att hämta senaste id'et så ska du se att det funkar

cya,
PatrikB

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

## #3 — PatrikB, 2002-10-26T14:30Z

Testa denna kod:

```
sub add_cup(obj as object, e as eventargs)
        
        dim strsql as string ="insert into cuper(namn,antal_lag,antal_grupper,antal_dagar, matcher_per_lag,tid_mellan_matcher,start_tid,start_dag) values ('" + tbnamn.text + "'," + tbantallag.text + "," + antalgrupper.selecteditem.text + "," + tbantaldagar.text + "," + tbantalmatcher.text + "," + tbtidmellanmatcher.text + ",'" + tbstarttid.text + "','" + tbstartdag.text + "')"
        dim objcmd as new oledbcommand(strsql, objconn)

        objcmd.connection.open()
        objcmd.executenonquery()
        
        dim objcmd1 as new oledbcommand _
                ("SELECT @@IDENTITY", objconn)
        
	Dim id1 As Integer

        dim dr as oledbDatareader = objCmd.ExecuteReader(CommandBehavior.CloseConnection)
        
	while dr.read
		id1 = dr.getint32(id)
		response.write(id1)
	end while
		
end sub
```

lite ändringar som du ser .....

cya,
PatrikB

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

## #4 — andreas_lindh, 2002-10-26T14:46Z

fungerar inte. Det läggs till en ny post i databasen men id:t skrivs inte ut.

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

## #5 — PatrikB, 2002-10-26T15:31Z

ok, ändra detta:

```
	while dr.read
		id1 = dr.getint32(id)
		response.write(id1)
	end while
```

till:

```
	If dr.read() = True Then
		id1 = dr("id")
		response.write(id1)
	end while
```

obs, du bär inte använda dig av response.write ...... ska den skrivas ut tex i en label så gär du på detta vis:

```
Label1.Text = dr("ID").ToString()
```

cya,
PatrikB

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

## #6 — andreas_lindh, 2002-10-26T16:48Z

> obs, du bär inte använda dig av response.write ...... ska den skrivas ut tex i en label så gär du på detta vis:

 

Jag använder bara response.write nu när jag testar

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

## #7 — andreas_lindh, 2002-10-27T09:14Z

Det fungerar fortfarande inte. Det verkar som om det inte kommer med något värde från @@IDENTITY

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

## #8 — PatrikB, 2002-10-27T12:04Z

fan så dum man e .... och inte kan man läsa innantill heller 

testa detta:

```
	If dr.read() = True Then
		id1 = dr(0)
		response.write(id1)
	end while
```

då identity inte har ett namn utan man refererar till den med positionen istället och positionen e alltid 0

cya,
PatrikB

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

## #9 — andreas_lindh, 2002-10-27T14:05Z

Blir samma resultat. Den skriver bara ut 0

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

## #10 — Zyax, 2002-10-28T06:59Z

Du kanske inte har en primärnyckel i DB? ID finns ju bara om DB vet vilken kolumn...

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

## #11 — andreas_lindh, 2002-10-28T07:43Z

Jo jag har en primärnyckel i databasen.

Fältet heter Id och är en räknare som skapar ReplikeringsID

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

## #12 — @nders, 2002-10-28T07:44Z

@@IDENTITY fungerar inte med replikerings-id, utan endast vanliga räknare.

Mvh,

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

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/57169-problem-med-insert
