写了个程序 String sqlstr="select * from sites";
myadapter = new OleDbDataAdapter(sqlstr, myOleDbConnection);
ds=new DataSet();
myadapter.Fill(ds,"Table1");
dataGridView1.DataSource = ds.Tables["Table1"];绑定了dataGridView1后来改变了ds其中的数值
................. if (m == 0)
{
ds.Tables["Table1"].Rows[i]["sitestate"] = "无法访问";
MessageBox.Show(ds.Tables["Table1"].Rows[i]["siteurl"].ToString().Trim()+"访问异常");
}
else
ds.Tables["Table1"].Rows[i]["sitestate"] = "可以访问";
myadapter.Update(ds,"Table1");....................于是希望DataGridView1也能刷新,显示出改变后的数据。看网上的方法是重新绑一次于是我就
dataGridView1.DataSource = null;
dataGridView1.DataSource = ds.Tables["Table1"];但DataSet ds没有用Adapter重新Fill.因为我觉得ds.Tables["Table1"].Rows[i]["sitestate"] = "可以访问";已经是改变了其中的数值,没必要重新Fill
然而什么也没发生,DataGridView也没有刷新(注意我是winform程序,DataGridView是没有bind函数的)
myadapter = new OleDbDataAdapter(sqlstr, myOleDbConnection);
ds=new DataSet();
myadapter.Fill(ds,"Table1");
dataGridView1.DataSource = ds.Tables["Table1"];绑定了dataGridView1后来改变了ds其中的数值
................. if (m == 0)
{
ds.Tables["Table1"].Rows[i]["sitestate"] = "无法访问";
MessageBox.Show(ds.Tables["Table1"].Rows[i]["siteurl"].ToString().Trim()+"访问异常");
}
else
ds.Tables["Table1"].Rows[i]["sitestate"] = "可以访问";
myadapter.Update(ds,"Table1");....................于是希望DataGridView1也能刷新,显示出改变后的数据。看网上的方法是重新绑一次于是我就
dataGridView1.DataSource = null;
dataGridView1.DataSource = ds.Tables["Table1"];但DataSet ds没有用Adapter重新Fill.因为我觉得ds.Tables["Table1"].Rows[i]["sitestate"] = "可以访问";已经是改变了其中的数值,没必要重新Fill
然而什么也没发生,DataGridView也没有刷新(注意我是winform程序,DataGridView是没有bind函数的)
DataRowView dr = DataGridView.Rows[i].DataBoundItem as DataRowView;
dr.BeginEdit(); //修改数据视图的值不会影响到DataGrid及DataTable
dr["DataPropertyName"] = 值;
//直接修改数据源的值
dr.EndEdit();
ds = new DataSet();
myadapter.Fill(ds, "Table1");
dataGridView1.DataSource = null;
dataGridView1.DataSource = ds.Tables["Table1"];
我第二次绑定时只有写全了才能正常的刷新,不写前三句只写前两句就不刷新,我想知道这是为什么