Это мой Form1.cs кодУдаление из выпадающего списка и базы данных
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace VoetbalApp
{
public partial class VoetbalApp : Form
{
Administration admin = new Administration();
public VoetbalApp()
{
InitializeComponent();
LoadSpelers();
}
public void LoadSpelers()
{
string filter = tbNaam.Text;
lbSpelers.Items.Clear();
List<Speler> spelers = admin.GetAllSpelers(filter);
foreach (Speler s in spelers.Where(s => s.Name.Contains(filter)))
{
lbSpelers.Items.Add(s);
}
}
public bool ClubCorrect(string club)
{
if (club != "Unitas 59")
{
return false;
}
else
{
return true;
}
}
private void btAdd_Click(object sender, EventArgs e)
{
string spelerNaam = tbAddNaam.Text;
string spelerClub = tbAddClub.Text;
if (ClubCorrect(spelerClub))
{
admin.AddSpeler(spelerNaam, spelerClub);
LoadSpelers();
}
else
{
MessageBox.Show("De door u ingevoerde club is niet juist."
);
}
}
private void btDelete_Click(object sender, EventArgs e)
{
int id;
Int32.TryParse(tbId.Text, out id);
bool verwijderenIsGelukt = admin.RemoveSpeler(id);
if (verwijderenIsGelukt)
{
LoadSpelers();
MessageBox.Show("Speler met ID" + id + " is succesvol verwijderd.");
tbId.Text = "";
}
else
{
MessageBox.Show("Er is iets mis gegaan bij het verwijderen van student met ID" + id + ".", "Verwijderen is mislukt.", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void tbNaam_TextChanged(object sender , EventArgs e)
{
LoadSpelers();
}
private void tbNaam_TextChanged_1(object sender, EventArgs e)
{
LoadSpelers();
}
}
}
И мой второй код Administration.cs
using System.Collections.Generic;
using System.Data;
// For SQL server operations
using System.Data.SqlClient;
using System.Windows.Forms;
namespace VoetbalApp
{
class Administration
{
public static string connectionString = @"Initial Catalog=Speler.mdf;Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=" + Application.StartupPath + @"\Speler.mdf;Integrated Security=True";
public SqlConnection conn = new SqlConnection(connectionString);
List<Speler> spelers = new List<Speler>();
/// <param name="name">De naam van de nieuwe speler.</param>
/// <param name="club">De club van de nieuwe speler.</param>
///
public void AddSpeler(string name, string club)
{
conn.Open();
Speler speler = new Speler();
speler.Name = name;
speler.Club = club;
string query = @"INSERT INTO Speler (Name, Club) OUTPUT Inserted.ID
VALUES (@name, @club)";
SqlCommand cmd = new SqlCommand(query, conn);
cmd.Parameters.Add("@name", SqlDbType.NVarChar).Value = speler.Name;
cmd.Parameters.Add("@club", SqlDbType.NVarChar).Value = speler.Club;
speler.ID = (int)cmd.ExecuteScalar();
conn.Close();
}
/// <param name="ID">Het ID van de speler die verwijderd moet worden.</param>
/// <returns>Geeft true terug bij succes, en anders false.</returns>
public bool RemoveSpeler(int ID)
{
int nrOfRowsAffected = 0;
conn.Open();
foreach (Speler s in spelers)
{
if (s.ID == ID)
{
string query = "DELETE FROM Speler WHERE ID = " + ID;
SqlCommand cmd = new SqlCommand(query, conn);
nrOfRowsAffected = cmd.ExecuteNonQuery();
spelers.Remove(s);
break;
}
}
conn.Close();
return nrOfRowsAffected > 0;
}
/// <param name="filter">De filter is om spelers te zoeken van de database.</param>
/// <returns>Een lijst van spelers waarvoor de filter is toegepast.</returns>
public List<Speler> GetAllSpelers(string filter)
{
spelers = new List<Speler>();
string query = "SELECT S.* FROM Speler S";
if (filter != "")
{
query += " WHERE Name LIKE '%" + filter + "%' OR Club LIKE '%" + filter + "%'";
}
conn.Open();
SqlCommand cmd = new SqlCommand(query, conn);
using (SqlDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
Speler speler = new Speler();
speler.ID = reader.GetInt32(0);
speler.Name = reader.GetString(1);
speler.Club = reader.GetString(2);
spelers.Add(speler);
}
}
conn.Close();
return spelers;
}
}
}
Так вопрос на RemoveSpeler в administration.cs и btDelete в виде1.cs. Спасибо, что нашли время.
У меня в основном код в моем сообщении, поэтому мне нужно добавить более подробную информацию или я не могу опубликовать его так. Итак, я хочу, чтобы у меня есть текстовое поле (tbID), где мне нужно поставить номер ID Speler, а затем нажмите кнопку (btDelete), чтобы удалить Speler с введенным идентификатором i из списка/базы данных. Но по какой-то причине он просто ничего не делает, никакой ошибки или чего-то еще. И этого все еще недостаточно, поэтому я все еще не могу опубликовать его, поэтому мне просто нужно набрать больше материала здесь, я не знаю, что еще набрать здесь.
Ваша первая строка кода не была в сером цвете, потому что она должна начинаться с четырех последовательных пробелов, чтобы считаться частью кода. –
Кроме того, вы должны использовать параметры вместо конкатенации строк для создания своих операторов sql. Читайте о SQL Injection. –
Удалено ли 'speler' из списка? –