【问题标题】:Add new rows to a gridview before submit to database在提交到数据库之前将新行添加到gridview
【发布时间】:2011-01-19 00:04:21
【问题描述】:

下午好,

我正在开发一种用于在线下订单的表单。

我从组合框中获取文章,并使用 sql 查询获取文章的详细信息。到目前为止,一切顺利。

我把那篇文章放到了 gridview 上。一篇文章,一切OK。

我选择文章,点击插入按钮,带有详细信息的文章被插入到gridview中。

我的问题是如何添加更多行。当我单击插入按钮时,使用不同的文章和详细信息,我只得到一行,数据被覆盖。

在所有行都在gridview中之后,我终于可以提交这些行并处理订单了。

我应该使用什么来添加我需要的这么多行?视图状态?会话状态?

我读了一些文章,但没有一篇文章能按我的需要帮助我。

谢谢。

编辑:

我使用数据表来存储数据。

 DataTable DT = new DataTable();

        DT.Columns.Add("Artigo");
        DT.Columns.Add("Descricao");
        DT.Columns.Add("IVA");
        DT.Columns.Add("PU");
        DT.Columns.Add("UN");
        DT.Columns.Add("Qtd");
        DT.Columns.Add("TotalLiq");

        try
        {
            int Qtd = Convert.ToInt32(Quantidade.Text);
            int PrecoUnit = glb._precolente;
            float TotalLiq = Qtd * PrecoUnit;

            string str = "SELECT TOP 1 A.Artigo as Artigo, A.Descricao as Descricao, (SELECT Taxa FROM prisalviani.dbo.Iva WHERE Iva = A.Iva)AS IVA, A.UnidadeBase as UN FROM prisalviani.dbo.ARTIGO A where A.Artigo='" + result.ToString() + "'";

            ListaLentes = Motor.Consulta(ref str);


            while (!ListaLentes.NoFim())
            {
                DT.Rows.Add(ListaLentes.Valor("Artigo"),
                            ListaLentes.Valor("Descricao"),
                            ListaLentes.Valor("IVA"),
                            PrecoUnit,
                ListaLentes.Valor("UN"),
                Qtd,
                TotalLiq
                );
                ListaLentes.Seguinte();
            }
        }
        catch (Exception ex)
        {
            Response.Write(ex.Message);
        }

【问题讨论】:

    标签: c# gridview insert row


    【解决方案1】:

    您给出的描述有点模糊,您使用什么样的数据结构来保存订单行?你想实现类似于购物篮的东西吗?

    您可以实现自己的业务实体或使用数据集/数据表来保存新记录,您可以将这些对象保留在 Session 中。

    有帮助吗?

    【讨论】:

    • 用更多细节编辑了问题。是的,它就像一个篮子。我在网格中插入 N 行,当我完成选择后,我提交并处理订单。
    【解决方案2】:

    假设您的 datagridview 包含 3 个字符串类型的单元格,

    你可以使用:

    object [] row1 = new object[] { "StringInCell1","StringInCell2","StringInCell3" }
    dataGridView.Rows.Add(row1);
    

    如果您需要编辑特定单元格,您可以使用:

    dataGridView.Rows[rowIndex].Cells[cellIndex].Value = "newValue";
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-05
      • 2013-04-29
      • 2022-01-05
      • 1970-01-01
      • 2013-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多