![](/img/trans.png)
[英]How to Use form1 datagridview1 (all rows) into form2 datagridview2
[英]How to remove all DataGridView rows on form load?
如何刪除除列標題以外的所有datagridview行?
我試過了:
dataGridView1.Rows.clear();
但它不起作用。
我試圖循環遍歷行並使用RemoveAt
方法,但它不會刪除所有行:
private void Form5_Load(object sender, EventArgs e)
{
dataGridView1.AutoGenerateColumns = true;
SqlConnection con = new SqlConnection(@"Data Source=.\myserver;Initial Catalog=test;Integrated Security=True");
adapter = new SqlDataAdapter("SELECT id as [#], description as [Description], unit as [Unit], amount as [Amount], unitPrice as [Unit Price], total as [Total] FROM tbl_poMaterials", con);
adapter.SelectCommand.CommandType = CommandType.Text;
DataTable tb = new DataTable();
adapter.Fill(tb);
SqlCommandBuilder builder = new SqlCommandBuilder(adapter);
dataGridView1.DataSource = tb;
dataGridView1.Columns[0].Width = 30;
dataGridView1.Columns[0].ReadOnly = true;
dataGridView1.Columns[1].Width = 660;
for (int i = 0; i < tb.Rows.Count; i++)
{
tb.Rows.RemoveAt(i);
}
}
這對我有用:
do
{
foreach (DataGridViewRow row in dataGridViewError.Rows)
{
try
{
dataGridViewError.Rows.Remove(row);
}
catch (Exception) { }
}
} while (dataGridViewError.Rows.Count > 1);
您需要清除DataSource或DataTable,而不是datagridview。
dataGridView.DataSource = null;
dataGridView.Refresh();
要么
dataTable.Clear();
dataGridView.Refresh();
我用
dataGridViewResult.Rows.Clear();
清除每一行而不刪除列。
對於同樣的問題,我嘗試了幾種方法,但無法成功。 如其中一個答案所述:
for(int i = 0; i < myDataGridView.Rows.Count; i++)
{
myDataGridView.Rows.RemoveAt(i)
}
實際上會刪除該行,但下一行會轉移到上一行! 所以,上面的方法刪除了一半的行數! 因此,你需要重復動作,直到它變為零!
或者,嘗試從最后一行刪除到第一行。 有用!
for(int i = myDataGridView.Rows.Count - 1; i >= 0; i--)
{
myDataGridView.Rows.RemoveAt(i);
}
如果你的網格綁定到DataTable或其他一些DataSource,那么你需要清除它,而不是網格,否則Rows.clear()方法是正確的,最好的方法。
//這應該有用
int rowCount = dataGridView1.Rows.Count;
for (int i = 0; i < rowCount; i++)
{
dataGridView1.Rows.RemoveAt(0);
}
你的解決方案沒有用,因為每當for循環檢查條件i < rowCount
,由於dataGridView1.Rows.RemoveAt(i)
, rowCount
已經減少了1。 因此只有一半的行會被刪除。
while(dataGridView1.Rows.Count >1) { dataGridView1.Rows.RemoveAt(0); }
使行和列計數為零並刷新數據集。
dataGrid.Rows.Count = 0;
dataGrid.Refresh();
int rowCount = dtg.Rows.Count;
for (int i = rowCount - 1; i >= 0; i--)
{
DataGridViewRow dr = dtg.Rows[i];
dtg.Rows.Remove(dr);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.