2014-06-19 42 views
0

我正在使用c#中的發票計費應用程序,我希望在保存並打印我的發票後重置我的datagridview我需要讓我的表單準備好在不重新啓動表單的情況下創建另一張發票。我已經嘗試了所有已知的可能的辦法,使我的datagridview的行數= 1,無法Datagridview行在進程後清除

dataGridView1.Rows.Clear(); 
dataGridView1.Refresh(); 

讓我也試圖與

dataGridView1.Rows.Clear(); 
dataGridView1.Refresh(); 
dataGridView1.DataSource = null; 

所有這些方法都清了清行和單元格,但當我在清除datagridview後進入一個新行時,它將進入從舊(dataGridView1.Rows[RowCount - 1])左側的行,因此它將所有其他行留空並進入新行如何解決此問題?

EDITED

我加入行這樣

dataGridView1.RowCount = RowCount + 1; 
string SQLStatement = "Select * from Stock_ManagerDB where STKItemCode='" + dataGridView1.Rows[RowCount - 1].Cells[1].Value + "'"; 
SqlDataReader myreader = DBConnection.viewDetails(SQLStatement); 
if (myreader.Read()) 
{ 
    dataGridView1.Rows[RowCount - 1].Cells[2].Value = myreader["STKItemName"].ToString().Trim(); 
    dataGridView1.Rows[RowCount - 1].Cells[3].Value = 1; 
    dataGridView1.Rows[RowCount - 1].Cells[4].Value = (string)myreader["STKCategory"].ToString().Trim(); 
    dataGridView1.Rows[RowCount - 1].Cells[5].Value = (string)myreader["SellingPrice"].ToString().Trim(); 
    dataGridView1.Rows[RowCount - 1].Cells[6].Value = labelDiscOperator.Text; 
    label_avlQty.Text = (string)myreader["STKQTY"].ToString().Trim(); 
    dataGridView1.Rows[RowCount - 1].Cells[15].Value = (string)myreader["STKQTY"].ToString().Trim(); 
    btnloadDGDGT(); 
    btnstockupdate(); 
} 
+0

您使用的是數據源?如果沒有,清楚'dataGridView1.Rows.Clear();'應該工作。 – LarsTech

+0

不,我不是一個數據綁定,只是一個用戶進入控制,它不是我工作,我想知道。 – Xeroth

+0

您是否有一些將新行添加到網格的代碼,或者用戶是否只需在網格中輸入正確的代碼? –

回答

0

嘗試這樣,

((DataTable)dataGridView1.DataSource).Rows.Clear(); //if datasource is datatable 

其他

((DataSet)dataGridView1.DataSource).Tables[0].Rows.Clear(); //if datasource is dataset 
+0

Nop沒有任何工作。 – Xeroth