问题1:我的datagridview里的数据是手工方式填加的,可以用dgv.rows.clear()来清空,但是修改以后我是用的dgv.datasource=datatable自动绑定,就不能再用dgv.rows.clear()来清空,请问如何判断当前的datagridview是手工绑定还是自动绑定?
问题2:我有2个按钮,一个是修改,一个是保存,用于控制datagridview。
修改的代码:
private void button6_Click(object sender, EventArgs e)
{
gv_Drug.ReadOnly = false; //gv_Drug是datagridview对象
button6.Enabled = false; //button6是修改铵钮
button5.Enabled = true; //button5是保存铵钮
}
保存的代码:
private void button5_Click(object sender, EventArgs e)
{
button5.Enabled = false;
button6.Enabled = true;
gv_Drug.DataSource = conn.dt;
conn.da.Update(conn.dt);
gv_Drug.ReadOnly = true;
}
现在的问题是保存后datatable不更新,再次点修改,再保存就可以更新。不明白是为什么?
问题2:我有2个按钮,一个是修改,一个是保存,用于控制datagridview。
修改的代码:
private void button6_Click(object sender, EventArgs e)
{
gv_Drug.ReadOnly = false; //gv_Drug是datagridview对象
button6.Enabled = false; //button6是修改铵钮
button5.Enabled = true; //button5是保存铵钮
}
保存的代码:
private void button5_Click(object sender, EventArgs e)
{
button5.Enabled = false;
button6.Enabled = true;
gv_Drug.DataSource = conn.dt;
conn.da.Update(conn.dt);
gv_Drug.ReadOnly = true;
}
现在的问题是保存后datatable不更新,再次点修改,再保存就可以更新。不明白是为什么?
貌似你已经有答案了dgv.datasource !=null就是绑定了问题2:我有2个按钮,一个是修改,一个是保存,用于控制datagridview。现在的问题是保存后datatable不更新,再次点修改,再保存就可以更新。不明白是为什么?
我听不太懂你的问题,保存后用DGV.Refresh()试试有没有更新界面乎?
conn.da.Update(conn.dt);
你反过来写试试呢?
conn.da.Update(conn.dt);
gv_Drug.DataSource = conn.dt;
{
try
{
button5.Enabled = false;
button6.Enabled = true;
//conn.dt = gv_Drug.DataSource as DataTable; conn.da.Update(conn.dt);
gv_Drug.DataSource = conn.dt;
conn.dt.AcceptChanges();
gv_Drug.ReadOnly = true;
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}现在的代码是这样的,问题依旧,如果用conn.dt = gv_Drug.DataSource as DataTable;也不行,报错说dt等于null
所以conn.dt = gv_Drug.DataSource as DataTable;无效
这时 conn.da.Update(conn.dt);
gv_Drug.DataSource = conn.dt;
没有作用但是怎么解决这个问题,还不知道
private void button6_Click(object sender, EventArgs e)
{
gv_Drug.ReadOnly = false; //gv_Drug是datagridview对象
button6.Enabled = false; //button6是修改铵钮
button5.Enabled = true; //button5是保存铵钮
gv_Drug.datasource=conn.dt;
}
private void button5_Click(object sender, EventArgs e)
{
try
{
button5.Enabled = false;
button6.Enabled = true;
conn.dt = gv_Drug.DataSource as DataTable; conn.da.Update(conn.dt);
gv_Drug.DataSource = conn.dt;
conn.dt.AcceptChanges();
gv_Drug.ReadOnly = true;
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
如果是,你应该在窗口的Load事件就用TableAdapter填充表,并使用gv_Drug.DataSource = conn.dt进行数据绑定,而不是直到保存时才绑定