2017-10-15 23 views
0

Je veux (lorsque le bouton est cliqué) la ligne précédente existe toujours dans datagridview lors de l'ajout d'une nouvelle ligne (de sorte que l'utilisateur peut ajouter autant de lignes qu'il le souhaite à l'exécution dans datagridview).Ajout d'une nouvelle ligne [à RunTime] dans DataGridView remplace la ligne ajoutée précédente

J'ai trouvé beaucoup de questions sur stackoverflow.com concernant les lignes de datagridview mais je n'arrive pas à les comprendre en fonction de mon problème. Deuxièmement, je suis nouveau dans Dapper et toutes les réponses en utilisant ADO.NET.

J'ai une idée qu'il devrait y avoir un moyen facile d'un tel problème.

Je lie mon datagridview à la classe Orders.

Voici ma classe Commandes ...

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; } 
    } 
} 

événement Sélectionnez le bouton Click est ..

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 [email protected]"; 
      ordersBindingSource.DataSource = db.Query<Orders>(query, new { ItemName = txt_sell_item.Text }); 

     } 
    } 

Quand je ItemName entrer comme 'pain' GUI est alors ..

Mais quand j'entre ItemName en tant que 'bjn', alors la premi w ..

When enter ItemName as 'bjn'

Répondre

0

La principale raison de votre problème se situe dans votre button click event handler, vous liez DataSource chaque fois que l'utilisateur clique sur le bouton qui vous donne un enregistrement comme prévu. Au lieu d'affecter DataSource, écrivez une instruction d'insertion qui insère l'enregistrement dans votre grille. En faisant cela, votre problème sera sûrement résolu.

Je ne donne pas de solution avec le code parce que je n'ai pas mon PC pour le moment.

+0

Il est de mon exigence d'application que je devrais utiliser DataSource. –

+0

L'utilisation de votre 'DataSource' est invalide dans votre clic. –