Динамическая вставка данных в ячейку просмотра данных - PullRequest
0 голосов
/ 11 сентября 2018

Я добавил столбец в таблицу данных динамически, и я хочу присвоить ему какое-то значение. Я использую следующий код ...

        String qr = "SELECT Id, CONVERT(varchar, OrderItemId) AS Product, Quantity,CONVERT(varchar,CustomerId) AS Customer, ReturnRequestStatusId as'Return Request Status', CreatedOnUtc as Date FROM ReturnRequest";
        DataTable dtr = new DataTable();
        tp.populatedt(qr, dtr);
        dgvReturnRequests.DataSource = dtr;

        DataGridViewTextBoxColumn ord = new DataGridViewTextBoxColumn();
        ord.HeaderText = "Order #";
        ord.Name = "OrderCol";
        dgvReturnRequests.Columns.Insert(4, ord); // Here I added a new column

        foreach (DataGridViewRow dr in dgvReturnRequests.Rows)
        {
            string s = dr.Cells[1].Value.ToString();
            DataTable pn = new DataTable();
            tp.populatedt("Select p.pname,o.OrderId from Product p JOIN OrderItem o on p.Id=o.ProductId where o.Id='" + Convert.ToInt32(s) + "'", pn);
            foreach (DataRow dr1 in pn.Rows)
            {
                dr.Cells[1].Value = dr1["pname"].ToString();
                dr.Cells[4].Value = dr1["OrderId"].ToString(); // Here I am adding the value in a newly added column

            }
        }

Отображается имя продукта (pname), но значение dr1 ["OrderId"]. ToString () не отображается в этой ячейке ... проверьте вывод на изображении ниже.

Output

Как я могу решить это?

Ответы [ 2 ]

0 голосов
/ 11 сентября 2018

Вы должны убедиться, что dgvReturnRequests.Rows и pn.Rows не пусты.В противном случае циклы не достигаются и ничего не обновляется.

И в конце вашего метода вы должны вызвать dgvReturnRequests.Update () ;обновить представление сетки данных.

0 голосов
/ 11 сентября 2018

Возможно, причина в том, что вы не перепривязали элемент управления gridview:

String qr = "SELECT Id, CONVERT(varchar, OrderItemId) AS Product, Quantity,CONVERT(varchar,CustomerId) AS Customer, ReturnRequestStatusId as'Return Request Status', CreatedOnUtc as Date FROM ReturnRequest";
DataTable dtr = new DataTable();
tp.populatedt(qr, dtr);
dgvReturnRequests.DataSource = dtr;

DataGridViewTextBoxColumn ord = new DataGridViewTextBoxColumn();
ord.HeaderText = "Order #";
ord.Name = "OrderCol";
dgvReturnRequests.Columns.Insert(4, ord);

foreach (DataGridViewRow dr in dgvReturnRequests.Rows)
{
    string s = dr.Cells[1].Value.ToString();
    DataTable pn = new DataTable();
    tp.populatedt("Select p.pname,o.OrderId from Product p JOIN OrderItem o on p.Id=o.ProductId where o.Id='" + Convert.ToInt32(s) + "'", pn);
    foreach (DataRow dr1 in pn.Rows)
    {
        dr.Cells[1].Value = dr1["pname"].ToString();
        dr.Cells[4].Value = dr1["OrderId"].ToString(); // Here I am adding the value in a newly added column
    }
    dtr.add(dr); // Function may differ in name. Maybe add a row.
}

dgvReturnRequests.DataSource=dtr;
dgvReturnRequests.DataBind();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...