SQL_DataView类

来源:互联网 发布:阿里年会马云跳舞 编辑:程序博客网 时间:2024/06/05 23:05

DataView 的一个主要功能是允许在 Windows 窗体和 Web 窗体上进行数据绑定。

另外,可自定义 DataView 来表示 DataTable 中数据的子集。此功能让您拥有绑定到同一 DataTable、但显示不同数据版本的两个控件。例如,一个控件可能绑定到显示表中所有行的 DataView,而另一个控件可能配置为只显示已从 DataTable 删除的行。DataTable 也具有 DefaultView 属性。它返回表的默认 DataView。例如,如果希望在表上创建自定义视图,请在 DefaultView 返回的 DataView 上设置 RowFilter

若要创建数据的筛选和排序视图,请设置 RowFilterSort 属性。然后,使用 Item 属性返回单个 DataRowView

还可使用 AddNewDelete 方法从行的集合中进行添加和删除。在使用这些方法时,可设置 RowStateFilter 属性以便指定只有已被删除的行或新行才可由 DataView 显示。

[C#]
public DataView(
   
DataTable table,
   string RowFilter,
   string Sort,
   DataViewRowState RowState
);

参数

table
要添加到 DataViewDataTable
RowFilter
要应用于 DataViewRowFilter。 "Country = 'UK'",   字段=‘值’
Sort
要应用于 DataViewSort。 排序:字段   ASC(DESC)
RowState
要应用于 DataViewDataViewRowState

[C#]
private void MakeDataView(DataSet ds)
{
    DataView dv = new DataView(ds.Tables["Suppliers"], "Country = 'UK'", "CompanyName",      DataViewRowState.CurrentRows);
    dv.AllowEdit = true; //允许编辑
    dv.AllowNew = true; //允许增加
    dv.AllowDelete = true;//允许删除

}
///DataViewRowState.CurrentRows :遍历出 包括未更改行、新行和已修改行的当前行。

DataView对象对象定义了DataTable的数据查看方式。数据默认的查看方式是将数据以表格的形式排列,且数据排列的顺序遵循从数据库表中取出数据时排列的顺序,也可以通过DataView对象使数据按照某些规则进行显示。

protected void Page_Load(object sender, EventArgs e)
     {
         OleDbConnection conn
= new OleDbConnection();
         conn.ConnectionString
= "Provider=Microsoft.Jet.OLEDB.4.0;" +
            
"Data Source=" + Server.MapPath("person.mdb");
         conn.Open();
        
string strSQL = "select * from grade";
         OleDbCommand Comm
= new OleDbCommand(strSQL, conn);
         OleDbDataAdapter da
= new OleDbDataAdapter();
         da.SelectCommand
= Comm;
         DataSet ds
= new DataSet();
         da.Fill(ds,
"grade");
         DataView dv
= new DataView(ds.Tables["grade"]);
         dv.RowFilter
= " 数学>80";
         dv.Sort
= "学号 desc,数学 desc";
         Response.Write(
"满足条件的记录有:" + dv.Count + "");

         dg.DataSource
= dv;
         dg.DataBind();
         conn.Close();
     }

通过DataView对象的Find()方法可以对数据进行查找,如果找到了,该方法将返回所在行的索引,并可以将查找到的数据输出。

protected void Page_Load(object sender, EventArgs e)
     {
         OleDbConnection conn
= new OleDbConnection();
         conn.ConnectionString
= "Provider=Microsoft.Jet.OLEDB.4.0;" +
            
"Data Source=" + Server.MapPath("person.mdb");
         conn.Open();
        
string strSQL = "select * from grade";
         OleDbCommand Comm
= new OleDbCommand(strSQL, conn);
         OleDbDataAdapter da
= new OleDbDataAdapter();
         da.SelectCommand
= Comm;
         DataSet ds
= new DataSet();
         da.Fill(ds,
"grade");
         DataView dv
= new DataView(ds.Tables["grade"],"","姓名",DataViewRowState.CurrentRows);
        
int rowIndex = dv.Find("小张");
        
if (rowIndex == -1)
             Response.Write(
"没有找到!");
        
else
         {
             Response.Write(dv[rowIndex][
"姓名"].ToString() + dv[rowIndex]["数学"].ToString());
             dg.DataSource
= dv;
             dg.DataBind();
         }
         conn.Close();
     }
原创粉丝点击