public void UpdateAlbum(AlbumProp albumProp) { // Skapar och initierar ett anslutningsobjekt. using (SqlConnection conn = CreateConnection()) { try { SqlCommand cmd = new SqlCommand("AppSchema.UppAlbum", conn); cmd.CommandType = CommandType.StoredProcedure; // Lägger till de paramterar den lagrade proceduren kräver. Använder här det effektiva sätttet att // göra det på - något "svårare" men ASP.NET behöver inte "jobba" så mycket. cmd.Parameters.Add("@AlbumID", SqlDbType.VarChar, 50).Value = albumProp.AlbumID; cmd.Parameters.Add("@AlbumTitel", SqlDbType.VarChar, 50).Value = albumProp.AlbumTitel; cmd.Parameters.Add("@ArtistTitel", SqlDbType.VarChar, 50).Value = albumProp.ArtistTitel; cmd.Parameters.Add("@Utgivningsår", SqlDbType.VarChar, 50).Value = albumProp.Utgivningsår; // Öppnar anslutningen till databasen. conn.Open(); // Den lagrade proceduren innehåller en UPDATE-sats och returnerar inga poster varför metoden // ExecuteNonQuery används för att exekvera den lagrade proceduren. cmd.ExecuteNonQuery(); } catch { // Kastar ett eget undantag om ett undantag kastas. throw new ApplicationException("An error occured in the data hgdfghaccess layer."); } } }
public void AlbumFormView_InsertItem(AlbumProp AlbumProp) { if (ModelState.IsValid) { try { ServiceAlbum.SaveAlbum(AlbumProp); AlbumMessage = String.Format("Ny kontakt lades till i databasen."); Response.Redirect(Request.RawUrl); } catch (Exception) { ModelState.AddModelError(String.Empty, "Ett oväntat fel inträffade då kunduppgiften skulle läggas till."); } } }
public void InsertAlbum(AlbumProp albumProp) { // Skapar och initierar ett anslutningsobjekt. using (SqlConnection conn = CreateConnection()) { try { // Skapar och initierar ett SqlCommand-objekt som används till att // exekveras specifierad lagrad procedur. SqlCommand cmd = new SqlCommand("AppSchema.NyttAlbum", conn); cmd.CommandType = CommandType.StoredProcedure; // Lägger till de paramterar den lagrade proceduren kräver. Använder här det effektiva sätttet att // göra det på - något "svårare" men ASP.NET behöver inte "jobba" så mycket. cmd.Parameters.Add("@AlbumTitel", SqlDbType.VarChar, 50).Value = albumProp.AlbumTitel; cmd.Parameters.Add("@ArtistTitel", SqlDbType.VarChar, 50).Value = albumProp.ArtistTitel; cmd.Parameters.Add("@Utgivningsår", SqlDbType.VarChar, 50).Value = albumProp.Utgivningsår; // Den här parametern är lite speciell. Den skickar inte något data till den lagrade proceduren, // utan hämtar data från den. (Fungerar ungerfär som ref- och out-prameterar i C#.) Värdet // parametern kommer att ha EFTER att den lagrade proceduren exekverats är primärnycklens värde // den nya posten blivit tilldelad av databasen. cmd.Parameters.Add("@AlbumID", SqlDbType.Int, 4).Direction = ParameterDirection.Output; // Öppnar anslutningen till databasen. conn.Open(); // Den lagrade proceduren innehåller en INSERT-sats och returnerar inga poster varför metoden // ExecuteNonQuery används för att exekvera den lagrade proceduren. cmd.ExecuteNonQuery(); // Hämtar primärnyckelns värde för den nya posten och tilldelar Customer-objektet värdet. albumProp.AlbumID = (int)cmd.Parameters["@AlbumID"].Value; } catch { // Kastar ett eget undantag om ett undantag kastas. throw new ApplicationException("An error occured in the data access layer."); } } }