Я практикую интеграцию SQL в C #, создав приложение Zoo Management. Пользователи могут ввести новое имя Zoo, которое будет внесено в список ListBox. Я хочу, чтобы приложение проверило, есть ли новый зоопарк в списке или нет (проверяет наличие дубликатов), и, если есть дубликат, оно удалит вновь добавленный зоопарк.
Я не могу понять SQL-запрос для этого.
Здесь я создаю крошечное приложение для моделирования, чтобы узнать о методе удаления дубликатов.
Имя таблицы TEST
с двумя столбцами Id
и Name
.
В WPF есть ListBox, в котором перечислены все имена, 2 кнопки (Add
и Remove
имена) и один TextBox для ввода имени для добавления.
Я пробовал различные методы, и я просто не могу заставить его работать.
public partial class MainWindow : Window
{
SqlConnection sqlConnection;
public MainWindow()
{
string connectionString = ConfigurationManager.ConnectionStrings["DeleteDuplicateTest.Properties.Settings.DB1ConnectionString"].ConnectionString;
sqlConnection = new SqlConnection(connectionString);
InitializeComponent();
ShowNames();
}
// This is where I got lost
public void CheckForDuplicates()
{
}
public void ShowNames()
{
string query ="select * from TEST";
SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(query, sqlConnection);
using (sqlDataAdapter)
{
DataTable names = new DataTable();
sqlDataAdapter.Fill(names);
listNames.DisplayMemberPath = "Name";
listNames.SelectedValuePath = "Id";
listNames.ItemsSource = names.DefaultView;
}
}
private void Add_Click(object sender, RoutedEventArgs e)
{
if (myTextBox.Text != "")
{
string query = "Insert into TEST values (@Name)";
SqlCommand sqlCommand = new SqlCommand(query, sqlConnection);
sqlConnection.Open();
sqlCommand.Parameters.AddWithValue("@Name", myTextBox.Text);
sqlCommand.ExecuteScalar();
sqlConnection.Close();
ShowNames();
CheckForDuplicates();
}
}
private void Remove_Click(object sender, RoutedEventArgs e)
{
if (listNames.SelectedValue != null)
{
string query = "Delete from TEST where Id=@Name";
SqlCommand sqlCommand = new SqlCommand(query, sqlConnection);
sqlConnection.Open();
sqlCommand.Parameters.AddWithValue("@Name", listNames.SelectedValue);
sqlCommand.ExecuteScalar();
sqlConnection.Close();
ShowNames();
CheckForDuplicates();
}
}
}