为什么不清除 datagridview?以及如何清除 datagridView?
Why not clear datagridview?? and how to Clear datagridView?
我想清除 datagridView 中的行,但每个代码都不起作用我搜索过它是错误吗??我的代码如下
private DataSet modelDS = null;
modelDS = db.getModelList();
/*
class db{
private DataSet ds = null;
public db(){
ds = new DataSet();
setModelList();
}
private void setModelList(){
//after DB Query
oda.Fill(ds);
}
public DataSet getModelList(){
retrun ds;
}
}
*/
dataGridView18.DataSource = modelDS.Tables[0];
//row list delete or add by user in only dataGridView
//users can not save them and they click only reload button
private void button1_Click (object sender , EventArgs e){
//reload button envent
//after clearing DataGridView ,dataSource reloaded
datagridView18.DataSource = null (not working)
datagridView18.Rows.clear() (not working)
DataTable dt = (DataTable)datagridview18.DataSource
dt.Clear() or dt.Rows.Clear() (not working)
foreach(DataGridViewRow row in datagrdiview18.Rows)
datagridView18.Rows.Remove(row) (not working)
dataGridView18.DataSource = modelDS.Tables[0];
}
重新加载后,dataGridView 中的内容不显示 modelDS.Tables 的内容而是显示用户编辑的内容!!
我认为 datagridview 应该显示数据表的内容,因为数据源被设置为 null 并重新加载数据表。但它不显示数据表的内容
这是什么原因??以及如何解决?谢谢
尝试
datagridView18.DataSource = null
之后
datagridView18.DataBind()
list in dataGridView is not showing modelDS.Tables's list it is showing edited list by user!!
听起来您没有理解数据绑定是双向的。用户所做的任何更改都会保存到数据中table。当我们使用数据绑定时,这通常是我们想要的。假设您有这样的表单代码:
class Form1{
private DataTable dt = new DataTable();
public Form1(){
InitializeComponenent();
dt.Columns.Add("Name");
dt.Rows.Add("John");
}
private void unbindButton_Click(...){
someDataGridView.DataSource = null;
}
private void bindButton_Click(...){
someDataGridView.DataSource = dt;
}
private void show00Button_Click(...){
MessageBox.Show(dt.Rows[0][0].ToString());
}
}
- 您 运行 应用程序
- 您点击绑定按钮
- dgv 数据源已设置
- 你看到约翰
- 你编辑给玛丽
- data table dt 已更改。是的,实际上数据table的内容被改变了。
- 你点击解除绑定
- 您点击 SHOW00,出现“mary”的消息框
- 您点击绑定,“Mary”出现在网格中
- 因为数据table被编辑,包含了Mary
如果您不想编辑原始 table,请复制它:
someDataGridView.DataSource = originalDataTable.Copy();
我想清除 datagridView 中的行,但每个代码都不起作用我搜索过它是错误吗??我的代码如下
private DataSet modelDS = null;
modelDS = db.getModelList();
/*
class db{
private DataSet ds = null;
public db(){
ds = new DataSet();
setModelList();
}
private void setModelList(){
//after DB Query
oda.Fill(ds);
}
public DataSet getModelList(){
retrun ds;
}
}
*/
dataGridView18.DataSource = modelDS.Tables[0];
//row list delete or add by user in only dataGridView
//users can not save them and they click only reload button
private void button1_Click (object sender , EventArgs e){
//reload button envent
//after clearing DataGridView ,dataSource reloaded
datagridView18.DataSource = null (not working)
datagridView18.Rows.clear() (not working)
DataTable dt = (DataTable)datagridview18.DataSource
dt.Clear() or dt.Rows.Clear() (not working)
foreach(DataGridViewRow row in datagrdiview18.Rows)
datagridView18.Rows.Remove(row) (not working)
dataGridView18.DataSource = modelDS.Tables[0];
}
重新加载后,dataGridView 中的内容不显示 modelDS.Tables 的内容而是显示用户编辑的内容!!
我认为 datagridview 应该显示数据表的内容,因为数据源被设置为 null 并重新加载数据表。但它不显示数据表的内容
这是什么原因??以及如何解决?谢谢
尝试
datagridView18.DataSource = null
之后
datagridView18.DataBind()
list in dataGridView is not showing modelDS.Tables's list it is showing edited list by user!!
听起来您没有理解数据绑定是双向的。用户所做的任何更改都会保存到数据中table。当我们使用数据绑定时,这通常是我们想要的。假设您有这样的表单代码:
class Form1{
private DataTable dt = new DataTable();
public Form1(){
InitializeComponenent();
dt.Columns.Add("Name");
dt.Rows.Add("John");
}
private void unbindButton_Click(...){
someDataGridView.DataSource = null;
}
private void bindButton_Click(...){
someDataGridView.DataSource = dt;
}
private void show00Button_Click(...){
MessageBox.Show(dt.Rows[0][0].ToString());
}
}
- 您 运行 应用程序
- 您点击绑定按钮
- dgv 数据源已设置
- 你看到约翰
- 你编辑给玛丽
- data table dt 已更改。是的,实际上数据table的内容被改变了。
- 你点击解除绑定
- 您点击 SHOW00,出现“mary”的消息框
- 您点击绑定,“Mary”出现在网格中
- 因为数据table被编辑,包含了Mary
如果您不想编辑原始 table,请复制它:
someDataGridView.DataSource = originalDataTable.Copy();