Я пытаюсь создать небольшое «приложение», которое использует флажки в качестве метода поиска.Он работает нормально, когда отмечен только 1 флажок, но когда я проверяю более одного флажка, он показывает результат только из последнего установленного флажка.Я пытался отладить его, и я вижу, что источник данных перезаписывается при каждом столкновении.Кто-нибудь, кто может помочь с входом о том, как «хранить» данные и не обновлять их при каждом утверждении «если»?
C #
private void UpdateBinding()
{
wodListBox.DataSource = null;
wodListBox.DataSource = Exercise;
wodListBox.DisplayMember = "ExerciseID";
}
private void Checkboxes()
{
DataAccess db = new DataAccess();
if (BarBellCheckBox.Checked)
{
Exercise = db.GetExercise(BarBellCheckBox.Text);
}
if (WallBallCheckBox.Checked)
{
Exercise = db.GetExercise(WallBallCheckBox.Text);
}
if (KettleBellCheckBox.Checked)
{
Exercise = db.GetExercise(KettleBellCheckBox.Text);
}
if (BarCheckBox.Checked)
{
Exercise = db.GetExercise(BarCheckBox.Text);
}
UpdateBinding();
}
public class DataAccess
{
public List<ExerciseModel> GetExercise(string ExerciseEquipment)
{
using (IDbConnection connection = new System.Data.SqlClient.SqlConnection(Helper.CnnVal("WodDB")))
{
return connection.Query<ExerciseModel>("dbo.GetEquipmentType @ExerciseEquipment", new { ExerciseEquipment = ExerciseEquipment }).ToList();
}
}
}
T SQL
CREATE PROCEDURE [dbo].[GetEquipmentType]
@ExerciseEquipment nvarchar(50)
AS
BEGIN
SELECT ExerciseName, ExerciseEquipment
FROM dbo.ExerciseName
INNER JOIN dbo.ExerciseEquipment
ON dbo.ExerciseName.ExerciseID = dbo.ExerciseEquipment.ExerciseID
WHERE ExerciseEquipment = @ExerciseEquipment
END