Getting @@ IDENTITY from TableAdapter

Ich versuche, eine scheinbar einfache Aufgabe zu erledigen, die sich in ein mehrstündiges Abenteuer verwandelt hat: Getting@@Identity vonTableAdapter.Insert().

Hier ist mein Code:

protected void submitBtn_Click(object sender, EventArgs e)
{
    AssetsDataSetTableAdapters.SitesTableAdapter sta = new AssetsDataSetTableAdapters.SitesTableAdapter();
    int insertedID = sta.Insert(siteTxt.Text,descTxt.Text);

    AssetsDataSetTableAdapters.NotesTableAdapter nta = new AssetsDataSetTableAdapters.NotesTableAdapter();
    nta.Insert(notesTxt.Text, insertedID, null,null,null,null,null,null);
    Response.Redirect("~/Default.aspx");
}

EinsAntworte schlägt vor, alles, was ich tun muss, ist das @ zu ändeExecuteMode. Ich habe es versucht. Das machtGetData() quit working (weil ich jetzt einen Skalar anstelle von rowdata zurückgebe) (ich muss GetData () behalten). Es löst auch nicht das Problem, dass die Variable insertedID immer noch auf 1 gesetzt ist.

Ich habe versucht, ein zweites @ zu erstelleTableAdapter in demTypedDataSet.XSD und Setzen der Eigenschaft für diesen Adapter auf "scalar", aber es schlägt immer noch fehl, wenn die Variable den Wert 1 erhält.

Der generierte Einfügebefehl lautet

INSERT INTO [dbo].[Sites] ([Name], [Description]) VALUES (@Name, @Description);
SELECT Id, Name, Description FROM Sites WHERE (Id = SCOPE_IDENTITY())

Und die Option "Datentabelle aktualisieren" (fügt nach den Anweisungen "Einfügen" und "Aktualisieren" zum Abrufen der Identität eine Select-Anweisung hinzu) ist ebenfalls festgelegt.

Umgebun

SQL Server 2008 R2, Visual Studio 2010, .NET 4, Windows XP, alle lokal auf demselben Computer.

Was ist der Grund dafür?

EDIT / UPDATE

Ich möchte klarstellen, dass ich automatisch generierten Code in Visual Studio verwende. Ich weiß nicht, welches "Tool" den Code generiert hat, aber wenn Sie auf die * .XSD-Datei doppelklicken, wird eine Benutzeroberfläche des SQL-Tabellenschemas und der zugehörigen TableAdapter angezeigt. Ich möchte weiterhin den automatisch generierten Code verwenden und irgendwie das Abrufen der Identität ermöglichen. Ich möchte das nicht alles mit gespeicherten Prozeduren von Hand schreiben.

Antworten auf die Frage(14)

Ihre Antwort auf die Frage