Как загрузить выбранные строки из базы данных SQL в DataGridView в C #? - PullRequest
0 голосов
/ 30 мая 2018

Мне нужно отобразить выбранные данные в моем DataGridView, который в соответствии с выбранным PO_No из поля со списком. Я попробовал это. Но отобразил только одну строку для выбранного PO_No

public void loadPOCarttable()
    {
        DynamicConnection con = new DynamicConnection();

        try
        {
            con.sqlquery("select b.BookName,b.ISBN_No,p.OrderQuantity,p.UnitPrice,p.Total from TBL_Book b, TBL_PO_Cart p where b.ISBN_No=p.ISBN_No and PO_No='" + cmbPO.Text + "'");
            con.mysqlconnection();
            con.datatable();
            con.dataread();
            //con.table.Load(con.datareader);
            int i = 0;
            while (con.datareader.Read())
            {
                dataGridView1.Rows[i].Cells[0].Value = con.datareader["BookName"].ToString();
                dataGridView1.Rows[i].Cells[1].Value = con.datareader["ISBN_No"].ToString();
                dataGridView1.Rows[i].Cells[2].Value = con.datareader["OrderQuantity"].ToString();
                dataGridView1.Rows[i].Cells[3].Value = con.datareader["UnitPrice"].ToString();
                dataGridView1.Rows[i].Cells[4].Value = con.datareader["Total"].ToString();
                i++;
            }
            //this.dataGridView1.DataSource = con.table;

        }
        catch (Exception ex)
        {
            MessageBox.Show("Error Occured" + ex.Message);
        }
    }

и отобразить эту ошибку.Как я могу решить это введите описание изображения здесь

1 Ответ

0 голосов
/ 30 мая 2018

Сначала убедитесь, что у вас есть все необходимые ячейки, затем попробуйте так:

while (con.datareader.Read())
{
    DataGridViewRow row = (DataGridViewRow)dataGridView1.Rows[0].Clone();
    row.Cells[0].Value = con.datareader["BookName"].ToString();
    row.Cells[1].Value = con.datareader["ISBN_No"].ToString();
    row.Cells[2].Value = con.datareader["OrderQuantity"].ToString();
    row.Cells[3].Value = con.datareader["UnitPrice"].ToString();
    row.Cells[4].Value = con.datareader["Total"].ToString();
    dataGridView1.Rows.Add(row);
}

Обновление

Используйте this.dataGridView1.Rows.Clear();, чтобы очистить предыдущие данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...