webForumDet fria alternativet

SELECT IDENTITY@@ och replikationsid

.NETur .NET

2 svar · 260 visningar · startad av icaaq

Medlem sedan okt. 20005 273 inlägg
Frågan#1

Tjenare.
Jag brukar använda en liknanade kodsnutt som den följande när jag tar fram senast insatta Id. Nu har jag satt mitt Id fält till Replikations Id och då kan jag inte få till det.... vad har jag gjort för fel?

[red]
public string RunQuerys(string SqlStatement)
{
	string identity;
	OleDbConnection con = Logic.Connection();
	try
	{
		OleDbCommand Command = new OleDbCommand(SqlStatement, con);
		Command.ExecuteNonQuery();
		Command.CommandText = "SELECT @@IDENTITY";
		OleDbDataReader dr = Command.ExecuteReader();
		if(dr.Read())
		{
			identity = Convert.ToString(dr[0]);
		}
		else
		{
			identity = string.Empty;
		}
	}
	finally
	{
		con.Close();
	}
	return identity;
}
[/red]

Vad som är konstigt är att jag får ut 0 ??

Jag kan ju tilläga att SqlStatementet som innehåller en Insert funkar...

mv icaaq

Medlem sedan juni 200032 969 inlägg
#2

Well...

Det beror på att @@IDENTITY bara returnerar värden för vanlig räknare.

Du får lägga till ett vanligt räknarfält i tabellen, hämta @@IDENTITY, och med hjälp av den hämta ut ditt replikerings-ID.

Mvh

Medlem sedan okt. 20005 273 inlägg
#3

hmmm ok..jobbigt ;)

mv icaaq

129 ms totalt · 3 externa anrop · v20260731065814-full.55e59744
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)