Agregar una nueva fila [en RunTime] en DataGridView reemplaza la fila anterior agregada

c# dapper sql-server winforms

Pregunta

Quiero (cuando se hace clic en el botón) la fila anterior todavía existe en datagridview mientras se agrega una nueva fila (de modo que el usuario puede agregar tantas filas como desee en tiempo de ejecución en datagridview).

Encontré muchas preguntas en stackoverflow.com con respecto a las filas de datagridview pero no puedo resolverlas de acuerdo con mi problema. En segundo lugar, soy nuevo en Dapper y todas las respuestas usan ADO.NET.

Tengo una idea de que debería haber una manera fácil de tal problema.

Ato mi vista de cuadrícula de datos a la clase de pedidos.

Aquí está mi clase de órdenes ...

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace test
{
    public class Orders
    {
        public int    ItemId      { get; set; }
        public string ItemName    { get; set; }
        public string Brand       { get; set; }
        public string Category    { get; set; }
        public int    Quantity    { get; set; }
        public int    Price       { get; set; }
    }
}

Seleccionar el botón Click Event es ..

private void btn_select_Click(object sender, EventArgs e)
    {

        using (IDbConnection db = new SqlConnection(ConfigurationManager.ConnectionStrings["Connection"].ConnectionString))
        {
            if (db.State == ConnectionState.Closed)
                db.Open();
            string query = "SELECT *FROM tbl_ItemDetail WHERE ItemName=@ItemName";
            ordersBindingSource.DataSource = db.Query<Orders>(query, new { ItemName = txt_sell_item.Text });

        }
    }

Cuando ingreso ItemName como 'bread', la GUI es ...

Cuando ingresas ItemName como 'pan'

Pero cuando ingreso ItemName como 'bjn', la primera fila reemplaza con la fila más nueva.

Cuando ingresas ItemName como 'bjn'

Respuesta popular

La razón principal detrás de su problema se encuentra en su button click event handler . Usted está vinculando DataSource cada vez que el usuario hace clic en el botón que le da un registro como se esperaba. En lugar de asignar DataSource , escriba una instrucción de inserción que inserte el registro dentro de su cuadrícula. Al hacer esto, su problema seguramente será resuelto.

No estoy dando solución con código porque no tengo mi pc ahora mismo.



Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué