Я очень плохо знаком с программированием и пытаюсь изучить C # с помощью небольшого проекта.
Я потратил неделю или больше, пытаясь найти решение, но, хотя есть много потоков, ни один из них не имел смысла для меня и не могзаставить его работать.
У меня есть форма с DataGridView, и я хочу создать 6 ComboBox для фильтрации.Все с одним и тем же источником данных.
До сих пор мне удалось заставить DataGridView работать с одним ComboBox, но я не знаю, как добавить еще их.
Мой код:
using System.Data;
using System.Data.SqlClient;
public partial class frmEmpList : Form
{
private void frmEmpList_Load(object sender, EventArgs e)
{
this.PopulateCombobox();
this.PopulateDataGridView();
}
private void PopulateCombobox()
{
string qry = "SELECT DISTINCT LastName FROM Employees";
string constr = @"Data Source=DESKTOP-Q2B3UUH\SQLEXPRESS;Initial Catalog=PeopleManager;Integrated Security=True";
using (SqlConnection con = new SqlConnection(constr))
using (SqlDataAdapter sda = new SqlDataAdapter(qry, con))
{
DataTable dt = new DataTable();
sda.Fill(dt);
DataRow row = dt.NewRow();
row[0] = "";
dt.Rows.InsertAt(row, 0);
cbLastName.DataSource = dt;
cbLastName.DisplayMember = "LastName";
cbLastName.ValueMember = "LastName";
}
}
private void PopulateDataGridView()
{
string query = "SELECT EmpID, FirstName, LastName, Role, Grade, Dept, Shift FROM Employees";
query += " WHERE LastName = @LastName";
query += " OR ISNULL(@LastName, '') = ''";
string constr = @"Data Source=DESKTOP-Q2B3UUH\SQLEXPRESS;Initial Catalog=PeopleManager;Integrated Security=True";
using (SqlConnection con = new SqlConnection(constr))
using (SqlCommand cmd = new SqlCommand(query, con))
{
cmd.Parameters.AddWithValue("@LastName", cbLastName.SelectedValue);
using (SqlDataAdapter sda = new SqlDataAdapter(cmd))
{
DataTable dt = new DataTable();
sda.Fill(dt);
dgEmpList.DataSource = dt;
}
}
}
private void cbLastName_SelectionChangeCommitted(object sender, EventArgs e)
{
this.PopulateDataGridView();
}
}