Führen Sie den Befehl Einfügen aus und geben Sie die eingefügte ID in Sql zurück
Hallo, ich bin einfügen von Werten in die sql-Tabelle mit C# in MVC4. Eigentlich möchte ich Werte eingefügt und wieder die 'ID' der letzten eingefügten Datensatz. Ich verwende den folgenden code.
public class MemberBasicData
{
public int Id { get; set; }
public string Mem_NA { get; set; }
public string Mem_Occ { get; set; }
}
ID automatisch erhöht in der Datenbank, wenn Sie eingesetzt wird.
public int CreateNewMember(string Mem_NA, string Mem_Occ )
{
using (SqlConnection con=new SqlConnection(Config.ConnectionString))
{
using(SqlCommand cmd=new SqlCommand("INSERT INTO Mem_Basic(Mem_Na,Mem_Occ) VALUES(@na,@occ)",con))
{
cmd.Parameters.AddWithValue("@na", Mem_NA);
cmd.Parameters.AddWithValue("@occ", Mem_Occ);
con.Open();
int modified = cmd.ExecuteNonQuery();
if (con.State == System.Data.ConnectionState.Open) con.Close();
return modified;
}
}
}
Ich weiß ExecuteNonQuery
bezeichnet die zahlen, die Auswirkungen auf die Zeile. Statt, dass ich die
int modified = (int)cmd.ExecuteScalar();
Aber nicht funktioniert. Bitte helfen Sie mir bei der Problemlösung. Und gibt es irgendeinen code wie cmd.ExecuteInsertAndGetID() (funktioniert nicht mit meinem code).
InformationsquelleAutor der Frage neel | 2013-08-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die folgende Lösung funktioniert mit sql server 2005 und höher. Sie können Ausgabe um das gewünschte Feld aus. inplace-id Sie können schreiben Sie Ihre Schlüssel, die Sie zurückgeben möchten. machen Sie es wie diese
FÜR SQL SERVER 2005 und höher
Die FÜR Vorherige Versionen
InformationsquelleAutor der Antwort Ehsan
Ändern Sie die Abfrage, um
Zurückkehren die Letzte eingefügte ID, die Sie können dann mit
ExecuteScalar
InformationsquelleAutor der Antwort Ken Keenan
Gespeicherte SQL Server-Prozedur:
C# - code:
Ich hoffe, diese helfen Ihnen ....
Können Sie dieses auch verwenden, wenn Sie wollen ...
InformationsquelleAutor der Antwort Humayoun Kabir
InformationsquelleAutor der Antwort Sasidharan
SCOPE_IDENTITY : liefert den letzten identity-Wert eingefügt in eine identity-Spalte in dem gleichen Umfang. für mehr details http://technet.microsoft.com/en-us/library/ms190315.aspx
InformationsquelleAutor der Antwort Ajay Punekar