进程后Datagridview行清除

时间:2014-06-19 23:34:38

标签: c# winforms datagridview

我正在使用c#中的发票结算应用程序,我希望在保存并打印发票后重置我的数据网格视图我需要准备好我的表单以便在不重新启动表单的情况下制作另一张发票。我已经尝试了所有已知的可能方法来使我的datagridview的rowcount = 1,无法使用

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

1 个答案:

答案 0 :(得分:0)

尝试这样,

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

否则

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