Скачиваний:
24
Добавлен:
12.04.2025
Размер:
8.45 Mб
Скачать

Приложение и

Листинг – Файл ManageTours.aspx.cs

using System;

using System.Data.SqlClient;

using System.Web.UI;

using System.Web.UI.WebControls;

namespace WebApplication3

{

public partial class ManageTours : Page

{

protected void AddTourButton_Click(object sender, EventArgs e)

{

Response.Redirect("AddTour.aspx");

SqlDataSource1.DataBind();

GridView1.DataBind();

}

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)

{

if (e.CommandName == "Delete")

{

int tourID = Convert.ToInt32(e.CommandArgument);

System.Diagnostics.Debug.WriteLine("Удаление тура с ID: " + tourID);

bool isDeleted = DeleteTour(tourID);

if (isDeleted)

{

GridView1.DataBind();

}

else

{

System.Diagnostics.Debug.WriteLine("Ошибка при удалении тура.");

}

}

}

private bool DeleteTour(int tourID)

{

string connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["travelConnectionString4"].ConnectionString;

System.Diagnostics.Debug.WriteLine("Строка подключения: " + connectionString);

try

{

using (SqlConnection connection = new SqlConnection(connectionString))

{

connection.Open();

System.Diagnostics.Debug.WriteLine("Соединение установлено");

using (SqlTransaction transaction = connection.BeginTransaction())

{

try

{

string deleteImageTourQuery = "DELETE FROM ImageTour WHERE TourID = @TourID";

ExecuteDeleteQuery(deleteImageTourQuery, tourID, connection, transaction);

string deleteTripQuery = "DELETE FROM Trip WHERE Tour_ID = @TourID";

ExecuteDeleteQuery(deleteTripQuery, tourID, connection, transaction);

string deleteTourSeasonQuery = "DELETE FROM TourSeason WHERE Tour_ID = @TourID";

ExecuteDeleteQuery(deleteTourSeasonQuery, tourID, connection, transaction);

string deleteTourHotelQuery = "DELETE FROM TourHotel WHERE Tour_ID = @TourID";

ExecuteDeleteQuery(deleteTourHotelQuery, tourID, connection, transaction);

string deleteRouteQuery = "DELETE FROM Route WHERE Tour_ID = @TourID";

ExecuteDeleteQuery(deleteRouteQuery, tourID, connection, transaction);

string deleteTourQuery = "DELETE FROM Tour WHERE Tour_ID = @TourID";

ExecuteDeleteQuery(deleteTourQuery, tourID, connection, transaction);

transaction.Commit();

System.Diagnostics.Debug.WriteLine("Тур с ID " + tourID + " удален.");

return true;

}

catch (Exception ex)

{

transaction.Rollback();

System.Diagnostics.Debug.WriteLine("Ошибка при удалении тура: " + ex.Message);

return false;

}

}

}

}

catch (Exception ex)

{

System.Diagnostics.Debug.WriteLine("Ошибка подключения или транзакции: " + ex.Message);

return false;

}

}

private void ExecuteDeleteQuery(string query, int tourID, SqlConnection connection, SqlTransaction transaction)

{

System.Diagnostics.Debug.WriteLine("Выполняется запрос: " + query);

System.Diagnostics.Debug.WriteLine("Параметр TourID: " + tourID);

using (SqlCommand command = new SqlCommand(query, connection, transaction))

{

command.Parameters.AddWithValue("@TourID", tourID);

command.ExecuteNonQuery();

}

}

protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)

{

int tourId = Convert.ToInt32(GridView1.DataKeys[e.NewEditIndex].Value);

Session["TourId"] = tourId;

Response.Redirect("EditTour.aspx");

}

}

}

Соседние файлы в предмете Проектирование информационных систем