---
title: "last_insert_id()"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/83456-last-insert-id"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "aleborg"
published: "2003-08-04T18:35:44.000Z"
updated: "2003-08-06T17:45:39.000Z"
replies: 3
views: 348
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/83456-last-insert-id"
---

# last_insert_id()

## #1 — aleborg, 2003-08-04T18:35Z

Hur gör jag för att plocka ut den nyss inlagda postens ID i C#/MySQL?

har provat med det här:

```
	OdbcConnection conn = new OdbcConnection(connectionString);			
	OdbcCommand cmdS = new OdbcCommand(contactsSqlStr.ToString(), conn);
	OdbcCommand cmdT = new OdbcCommand("select last_insert_id() as weee", conn);
	conn.Open();
		cmdS.ExecuteReader();
		OdbcDataReader rS = cmdT.ExecuteReader();
		string cid= rS["weee"].ToString();
	rS3.Close();
	conn.Close();
	Response.Write(cid);
```

Men det går inte att köra två commandon på en connection :(

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

## #2 — icaaq, 2003-08-04T20:21Z

Så här har jag gjort:

```
[red]
private void btn_submit_Click(object sender, System.Web.UI.ImageClickEventArgs e)
		{
			string OrderNumber = "";
			string SqlStatement = "INSERT INTO customers(firstname, lastname, phone)VALUES('"+ firstname.Text +"', '"+ lastname.Text +"', '"+ phone.Text +"')";
			string SqlStatementToRetrive = "SELECT @@IDENTITY as pkid";
			OdbcConnection Connection = new OdbcConnection("driver={MySQL ODBC 3.51 Driver};server=localhost;database=catering;uid=root;pwd=sa");
			try
			{
				Connection.Open();
				OdbcCommand Command = new OdbcCommand(SqlStatement, Connection);
				Command.CommandType = CommandType.Text;
				Command.ExecuteNonQuery();
				Command.CommandText = SqlStatementToRetrive;
				OdbcDataReader DataReader = Command.ExecuteReader();
				if(DataReader.Read())
				{
					OrderNumber = DataReader["pkid"].ToString();
				}
			}
			finally
			{
				Connection.Close();
			}[/red]
```

Mvh icaaq

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

## #3 — PatrikB, 2003-08-05T08:03Z

Testa med denna kod:

```
	OdbcConnection conn = new OdbcConnection(connectionString);			
	OdbcCommand cmdS = new OdbcCommand(contactsSqlStr.ToString(), conn);
	OdbcCommand cmdT = new OdbcCommand("select last_insert_id() as weee [b]FROM MyTable[/b]", conn);
	conn.Open();
		cmdS.ExecuteReader();
		// OdbcDataReader rS = cmdT.ExecuteReader();
		// string cid= rS["weee"].ToString();
	
		int cid = cmdT.ExecuteScalar()

	// rS3.Close();
	conn.Close();
	Response.Write(cid.ToString);
```

Eftersom det endast är ett värde som kommer tillbaka från last_insert_id() så är det bättre att köra ExecuteScalar än att skapa en DataReader för endamålet

cya,
/PatrikB

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

## #4 — icaaq, 2003-08-06T17:45Z

japp du har så rätt så....tack PatrikB

Mvh icaaq

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

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/83456-last-insert-id
