Fahid Zahoor Ответов: 1

Как мы можем добавить элементы multipal в gridview в соответствии со значением combobox.


когда мое приложение загружается и я выбираю любое значение из combobox, оно добавляется в gridview .
После добавления одного значения из combobox я выбираю другое значение из combobox, но оно снова добавляет Предыдущее значение, которое я добавил в первый раз.
Пожалуйста, помогите мне.
заранее спасибо.

Что я уже пробовал:

private void ServicesProvidedcomboBox_SelectedIndexChanged(object sender, EventArgs e)
{
    TakeServiceTypeAndRateInGridView();
    if (ServicesAndChargesdt.Rows.Count > 0)
    {
        AddServicesClass adservis = new AddServicesClass()
        {
            ServicName = (ServicesAndChargesdt.Rows[0]["ServiceType"].ToString()),
            Rate = Convert.ToDecimal(ServicesAndChargesdt.Rows[0]["Charges"].ToString())
        };
        listadser.Add(adservis);
        ServiceAndRatedataGridView.DataSource = null;
        ServiceAndRatedataGridView.DataSource = listadser;
    }
}

private void TakeServiceTypeAndRateInGridView()
{
    using (SqlConnection conn4 = new SqlConnection(dbconfig.connectDb()))
    {                 
        conn4.Open();
        using (SqlCommand cmd = new SqlCommand("USP_Take_Service_And_Charges", conn4))
        {
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.AddWithValue("@ServiceType", ServicesProvidedcomboBox.Text);
            SqlDataReader drd = cmd.ExecuteReader();
            ServicesAndChargesdt.Load(drd);
        }                                
    }             
}

[no name]

Какой метод вы вызываете первым из вышеприведенного кода?

1 Ответов

Рейтинг:
1

mvdk72

Я не уверен, что правильно понимаю вашу проблему. Но я предполагаю, что предыдущие данные видны в вашей Datagrid после изменения значения в вашем combobox?

Глядя на ваш код, это может быть как-то связано с тем, что вы не очистили список "listadser" перед добавлением данных из вашего datareader. <listitems.clear()> Перед добавлением данных может решить вашу проблему, если я правильно понял вашу проблему

private void ServicesProvidedcomboBox_SelectedIndexChanged(object sender, EventArgs e)
{
    //Clear backing store DataGrid for older items
    listadser.Clear();
    
    //Get new data from DB
    TakeServiceTypeAndRateInGridView();
    if (ServicesAndChargesdt.Rows.Count > 0)
    {
        AddServicesClass adservis = new AddServicesClass()
        {
            ServicName = (ServicesAndChargesdt.Rows[0]["ServiceType"].ToString()),
            Rate = Convert.ToDecimal(ServicesAndChargesdt.Rows[0]["Charges"].ToString())
        };
        listadser.Add(adservis);
        ServiceAndRatedataGridView.DataSource = null;
        ServiceAndRatedataGridView.DataSource = listadser;
    }
}