2017-10-15 13 views
0

新しい行を追加する際に、前の行がDataGridviewに残っています(実行時に必要な数の行を追加できますデータグリッドビューで)。DataGridViewの[RunTimeで]新しい行を追加すると、前に追加された行が置き換えられます

stackoverflow.comについては、datagridviewの行に関して多くの質問がありましたが、私の問題に応じてそれらを把握することはできません。第二に、私はDapperとADO.NETを使用してすべての答えで新しいです。

私は、このような問題の簡単な方法があるはずであるという考えがあります。

私はデータグリッドビューを注文クラスにバインドします。ここで

は..私はその後、GUIは 'パン' とItemNameのを入力すると、私の受注クラス...

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

セレクトボタンクリックイベントが..です

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

     } 
    } 

ある

When enter ItemName as 'bread'

しかし、ItemNameを 'bjn'と入力すると、最初の行が最新のroに置き換えられますワット..

When enter ItemName as 'bjn'

答えて

0

あなたの問題の背後にある主な理由は、あなたのbutton click event handler内にある、あなたは、ユーザーが期待通りにあなたに1つのレコードを与えるボタンをクリックするたびDataSourceに結合されています。 DataSourceを割り当てる代わりに、グリッド内にレコードを挿入するinsert文を記述します。これにより、問題は確実に解決されます。

私のPCは今のところ持っていないので、私はコードで解決策を教えていません。

+0

DataSourceを使用する必要があるのは私のアプリケーション要件です。 –

+0

あなたのクリック内であなたの 'DataSource'の使用は無効です。 –

関連する問題