SQL_DataView类

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();
     }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值