string query = "select CustomerID,CompanyName,ContactName from Customers";
string connString = //...假定连接字符串是一个有效的连接字符串
SqlDataAdapter ad = new SqlDataAdapter(query,connString);
DataSet ds = new DataSet();
ad.Fill(ds,"Customers");DataViewManager vueManager = new DataViewManager(ds);
//下面该如何使用vueManager对象来影响DataView呢?
//在DataViewManager对象中公开了DataViewSettings属性,但是这个属性在我看来根本是个摆设!
//它根本不能控制DataView的所包含的RowFilter,RowStateFilter,Sort属性!
这样有助于理解...
所以这才到CSDN来求救的, 只不过情形并没有想象的那样乐观。
Code :
DataViewSetting vueSet1 = vueManager["Customers"];
DataViewSetting vueSet2 = vueManager["Orders"];
vueSet1.Sort = "ContactName";
vueSet2.Sort = "OrderDate";改怎样写代码才能将这些设置应用到DataView对象中呢?
昨天我看了一些关于DataViewManager对象的帮助文档。但是都没有提及有关DataViewManager对象的具体的使用方法,非常遗憾。
但是我们依然可以使用DataViewManager对象的CreateDataView方法能够方便的创建相关表的DataView对象。并且DataSet对象也公开了DefaultViewManager属性,在创建DataView对象时提供了一种简单的方法。
希望对你有所帮助!
DataSet ds = new DataSet();
ad.Fill(ds, "Customers"); DataViewManager vueManager = new DataViewManager(ds);
DataViewSetting vueSet1 = vueManager.DataViewSettings["Customers"];
vueSet1.Sort = "ContactName"; // 根据上面的设置创建DataView对象
DataView view = vueManager.CreateDataView(ds.Tables["Customers"]);
// 对DataView进行后续操作,例如绑定到显示控件,或用foreach枚举每一行:
//System.Windows.Forms.DataGrid grid = new System.Windows.Forms.DataGrid();
//grid.DataSource = view;
//this.Controls.Add(grid);
我测试下,然后回来结贴!
谢谢了...
using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["MGC"].ConnectionString))
{
conn.Open();
SqlDataAdapter da = new SqlDataAdapter(select, conn);
DataSet ds = new DataSet();
da.Fill(ds, "TestUser");
DataViewManager dvm = new DataViewManager(ds);//创建DataViewManager,包装DataSet
dvm.DataViewSettings["TestUser"].RowFilter = "password='000'";
dataGrid1.SetDataBinding(dvm, "TestUser");
conn.Close(); TestUser 表中的DataView,使之显示出来password='000'的用户