Skrivet av WebbkodsLärlingen:
Vänligen visa din kod genom att nyttja BB-taggarna [ code] <klistra in din kod här> [ /code] (sudda bort mellanslagen vid de vänstra hakparenteserna), och berätta gärna vad du försöker göra som inte verkar gå att göra? När du säger lägga till en 'int' (dvs., "heltal"), menar du då att skapa en variabel av datatypen int som sedan ska innehålla någon giltig data (dvs., ett heltal) av det slaget?
Mvh,
WKL.
Jag har haft lunginflammation som blev mycket värre, därför har jag inte svarat..
Lyckades ändra namnet på en region, nu är det att radera en produkt som är problemet. Fick bort produkter efter att ha suttit hela natten igår och trodde att jag hade löst det. Stängde av datorn och gick och la mig, när jag startade datorn igen var produkterna tillbaka!
Nu har jag ändrat koden efter att ha lyckats slarva bort den första, tagit bort databasen i SSMS och lagt in den på nytt. Förstår att jag inte kan ta bort produkten p.g.a. att den finns på andra ställen. Var har jag tänkt fel?
```<using System;
using System.Data.SqlClient;
class Program
{
static void Main()
{
try
{
// Anslutningssträng
string connectionString = @Data Source=MADELENE\SQLEXPRESS;Initial Catalog=Northwind33;
Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;
ApplicationIntent=ReadWrite;MultiSubnetFailover=False;
// Produkten jag vill radera.
int productIdToDelete = 1;
// Metod
DeleteProductFromAllPlaces(connectionString, productIdToDelete);
Console.WriteLine($"Produkten med ProductID {productIdToDelete} har raderats från alla ställen.");
}
catch (Exception ex)
{
Console.WriteLine("Ett fel uppstod: " + ex.Message);
}
}
static void DeleteProductFromAllPlaces(string connectionString, int productId)
{
try
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
using (SqlTransaction transaction = connection.BeginTransaction())
{
try
{
// Raderar från alla relaterade tabeller.
string deleteOrderDetailsQuery = "DELETE FROM [Order Details] WHERE ProductID = @ProductId";
using (SqlCommand deleteOrderDetailsCommand = new SqlCommand(deleteOrderDetailsQuery, connection, transaction))
{
deleteOrderDetailsCommand.Parameters.AddWithValue("@ProductId", productId);
deleteOrderDetailsCommand.ExecuteNonQuery();
}
Console.WriteLine($"Produkten med ProductID {productId} har raderats från Order Details.");
//Raderar från "huvutabellen".
string deleteProductQuery = "DELETE FROM Products WHERE ProductID = @ProductId";
using (SqlCommand deleteProductCommand = new SqlCommand(deleteProductQuery, connection, transaction))
{
deleteProductCommand.Parameters.AddWithValue("@ProductId", productId);
deleteProductCommand.ExecuteNonQuery();
}
Console.WriteLine($"Produkten med ProductID {productId} har raderats från Products.");
// Alla ändringar godkänns.
transaction.Commit();
}
catch (Exception ex)
{
// Om något går fel.
transaction.Rollback();
throw; // Tar tillbaka till Try - catch om något går fel.
}
}
}
}
catch (Exception ex)
{
Console.WriteLine("Ett fel uppstod: " + ex.Message);
}
}
}
```