今天给我们家做账本程序的时候,遇到一个数据绑定的问题。
如果用DataView 在 Using 的范围内获取数据,无法作为数据源绑定到控件。
具体代码:
using (DataView dv = _myAccess.ExecuteDataView(CommandType.Text, strCommandText))
{
combo.DataSource = dv;
combo.DisplayMember = strDisplay;
}
这样发现DateView可以取出数据,绑定到控件也有数据,但是页面中下拉框上无数据。
但是用DataSet 就可以:
using (DataSet ds = _myAccess.ExecuteDataSet(CommandType.Text, strCommandText))
{
combo.DataSource = ds.Tables[0].DefaultView;
combo.DisplayMember = strDisplay;
}
或者不用 using ,DataView也有效
DataView dv = _myAccess.ExecuteDataView(CommandType.Text, strCommandText);
combo.DataSource = dv;
combo.DisplayMember = strDisplay;
原来DataView在Using作用范围外,会及时销毁,居然连绑定到控件的数据就会消失。
还有很多不明白的地方,请大家指教。
1. 为什么绑定好的数据会消失?
2. Using的作用域外到底销毁的是什么?
如果用DataView 在 Using 的范围内获取数据,无法作为数据源绑定到控件。
具体代码:
using (DataView dv = _myAccess.ExecuteDataView(CommandType.Text, strCommandText))
{
combo.DataSource = dv;
combo.DisplayMember = strDisplay;
}
这样发现DateView可以取出数据,绑定到控件也有数据,但是页面中下拉框上无数据。
但是用DataSet 就可以:
using (DataSet ds = _myAccess.ExecuteDataSet(CommandType.Text, strCommandText))
{
combo.DataSource = ds.Tables[0].DefaultView;
combo.DisplayMember = strDisplay;
}
或者不用 using ,DataView也有效
DataView dv = _myAccess.ExecuteDataView(CommandType.Text, strCommandText);
combo.DataSource = dv;
combo.DisplayMember = strDisplay;
原来DataView在Using作用范围外,会及时销毁,居然连绑定到控件的数据就会消失。
还有很多不明白的地方,请大家指教。
1. 为什么绑定好的数据会消失?
2. Using的作用域外到底销毁的是什么?