2015-11-06 56 views
0

我有壓應在同一時間到數據庫中的數據添加更新的DataGridView,並添加一個新行上按一下按鈕添加新行,但不工作

private void button1_Click(object sender, EventArgs e) 
    { 
     try 
     { 
      cn.Open(); 
      cmd.CommandText = "INSERT INTO [Table](Code, Name, Price, units)VALUES('" + codeTextBox.Text + "','" + nameTextBox.Text + "','" + priceTextBox.Text + "','" + unitsTextBox.Text + "')"; 
      cmd.ExecuteNonQuery(); 
      cn.Close(); 
      string col1 = codeTextBox.Text; 
      string col2 = nameTextBox.Text; 
      string col3 = priceTextBox.Text; 
      string col4 = unitsTextBox.Text; 
      string[] row = { col1, col2, col3, col4 }; 
      tableDataGridView.Rows.Add(row); 
      tableDataGridView.RowCount++; 
     }catch(Exception bs) 
     { 

     } 

結果時,命令按鈕的代碼是來自文本框的數據會進入數據庫,並且在更新到新行時更新,但行數不會增加任何想法?

+0

如果你在DataGridView上有一個命令按鈕,它顯示你沒有在正確的事件中插入數據..你是否已經通過代碼設置斷點?這行代碼的意義是什麼......'tableDataGridView.RowCount ++;'完全無用,基於我所看到的當前代碼。 – MethodMan

+0

這個問題的問題,但*使用參數化查詢*! –

回答

0

看來您正在使用DataGridView的DataSource屬性。當使用此屬性綁定到數據時,您無法直接將行直接添加到DataGridView。您必須將行直接添加到您的數據源。

你需要聲明一個數據表,或者可以作爲一個可綁定的源,然後綁定這個作爲數據源列表

tableDataGridView.DataSource = myDataTable; 
tableDataGridView.Refresh(); 

Simpliest方式如何做到這一點,你可以明白:

與列創建數據表:

public DataTable CreateMyTableDatasource() 
     { 
      DataTable dt = new DataTable("dt"); 
      dt.Columns.Add("col1".ToString()); 
      dt.Columns.Add("col2".ToString()); 
      dt.Columns.Add("col3".ToString()); 
      dt.Columns.Add("col4".ToString()); 
      return dt; 
     } 

然後使用一個DataTable像這樣的:

private void button1_Click(object sender, EventArgs e) 
     { 
      .... 
      DataRow dr; 
      DataTable myDataTable = CreateMyTableDatasource(); 
      dr = myDataTable.NewRow(); 
      dr["col1"] = codeTextBox.Text; 
      dr["col2"] = nameTextBox.Text; 
      dr["col3"] = priceTextBox.Text; 
      dr["col4"] = unitsTextBox.Text; 
      myDataTable.Rows.Add(dr); 
      tableDataGridView.DataSource = myDataTable; 
      tableDataGridView.Refresh(); 
     } 

但這隻能建立在你的tableDataGridView一排沒有任何以前的數據,所以首先,你需要填寫您以前的所有數據從tableDataGridView一個數據表,然後添加一個新行。 How can I do this?