Définir une variable C # à la valeur d'une valeur de colonne auto-incrémentée dans SQL?

D'accord, j'ai donc un projet qui simule un dissortingbuteur de tickets de parking. Je dois pouvoir laisser entrer l'user, leur assigner un billet et les laisser utiliser ce ticket pour les sortir et les recharger en fonction de l'heure dans le garage. J'insère leurs données dans une table qui a une colonne d'identification automatique incrémentée parce que je dois pouvoir suivre quel billet ils sont et les append / les enlever en conséquence. Je cours ce code pour append leur billet à la database et il fonctionne très bien, je rencontre des difficultés à prendre l'ID que la database donne leur ticket et l'assigner à l'object Ticket que l'affectation veut que nous utilisions. Voici le code que j'utilise quand ils arrivent.

private void EnterBtn_Click(object sender, EventArgs e) { DateTime timeIn = new DateTime(); timeIn = DateTime.Now; int ticketID = 0; MessageBox.Show("Entered Parking Garage at: " + timeIn.ToSsortingng()); //Insert Data into the table, increment the ticketID, store that as the TicketNumber //in the ticket object ssortingng sqlQuery = "INSERT INTO Tickets (TimeIssued)"; sqlQuery += "VALUES (@TimeIssued)"; using (SqlConnection dataConnection = new SqlConnection("Data Source=stusql.otc.edu;Initial Catalog=th0732193;Integrated Security=True")) { using (SqlCommand dataCommand = dataConnection.CreateCommand()) { dataConnection.Open(); dataCommand.CommandType = CommandType.Text; dataCommand.CommandText = sqlQuery; dataCommand.Parameters.AddWithValue("@TimeIssued", timeIn); dataCommand.ExecuteNonQuery(); ticketID = Convert.ToInt32(dataCommand.Parameters["@TicketID"].Value.ToSsortingng()); dataConnection.Close(); } } Ticket newTicket = new Ticket(); newTicket.TimeIn = timeIn; newTicket.TicketNumber = ticketID; } 

Donc le problème principal est que puisque la colonne est incrémentée automatiquement, je ne peux pas append un paramètre ou ça va gâcher ça (à less qu'il y ait un moyen de le faire que je ne connais pas, et si c'est le cas, génial!) , et c'est un problème car j'ai besoin d'assigner ce ticketID à l'object ticket.

Ma question est, comment puis-je définir ce TicketID qui est stocké dans la database à la propriété de numéro de Ticker dans mon object Ticket.

J'ai regardé partout et je ne trouve pas de solution à ce problème qui va m'aider dans mon cas particulier, donc bien que je sois sûr que c'est une question stupide, j'ai vraiment besoin d'aide, j'apprécierais beaucoup!

changer la requête sql comme ci-dessous

 ssortingng sqlQuery ="INSERT INTO Tickets (TimeIssued) OUTPUT INSERTED.TicketID VALUES(@TimeIssued) 

puis

 dataCommand.CommandText = sqlQuery; dataCommand.Parameters.AddWithValue("@TimeIssued", timeIn); int TicketID = (int) dataCommand.ExecuteScalar(); 

Est-ce que cela fonctionne, en l'ajoutant après la ligne dataCommand.ExecuteNonQuery?

 dataCommand.CommandText = "SELECT @@IDENTITY"; int id = dataCommand.ExecuteScalar();