2017-10-15 79 views
0

我希望(按下按鈕時)前一行仍然存在於datagridview中,同時添加新行(這樣用戶可以在運行時添加儘可能多的行在datagridview中)。在DataGridView中添加新行[在運行時]替換以前添加的行

我在stackoverflow.com上發現了很多關於datagridview行的問題,但是根據我的問題我找不出來。其次,我是Dapper的新手,並且使用ADO.NET的所有答案。

我有一個想法,應該有這樣一個問題的簡單方法。

我將我的datagridview綁定到訂單類。

這裏是我的訂單班...

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

選擇按鈕的Click事件是..

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

     } 
    } 

當我進入ITEMNAME爲 '麪包',那麼GUI是..

When enter ItemName as 'bread'

但是,當我輸入ItemName爲'bjn'時,第一行將替換爲最新的ro w^..

When enter ItemName as 'bjn'

回答

0

您的問題背後的主要原因在於你button click event handler內,你每次用戶點擊它給你一個創紀錄的預期按鈕時結合DataSource。而不是分配DataSource,寫一個插入語句插入記錄在您的網格。通過這樣做,你的問題肯定會得到解決。

我沒有給代碼解決方案,因爲我現在沒有我的電腦。

+0

這是我的應用程序的要求,我應該使用數據源。 –

+0

您的'DataSource'在您的點擊中無效。 –