Code

//构造一个DataView对象,传递死个函数

DataView dv=new DataView(dt,"country='Germany'","country",DataViewRowState.CurrentRows);

第一个参数:DataTable,第二个:对DataTable内容进行筛选的筛选器,

第三个是排序列,最后一个参数是指定要在视图中包含的行的类型.

System.Data.DataViewRowState是一个枚举类型:

Added----新行

CurrentRows----当前行,包含未修改的,修改的,新的

Deleted--被删除的行

ModifiedOriginal--已修改过的原来的版本

ModifiedCurrent--被修改过的当前版本

None-- 没有行

OriginamRows--原来的行。包括为修改的和删除的行

 unchanged--为修改的行

foreach (DataRowView drv in dv)
                {
                    for (int i = 0; i < dv.Table.Columns.Count; i++)
                    {
                        Console.Write(drv[i]+""t");
                    } Console.WriteLine();
                }

 //////////////////////////

DataRow--DataTable中的一行

DataViewRow--DataView中的单行

//DataView是DataTable内容的动态表示,与Sql视图一样,它不保存数据!

DataView是建立在DataTable基础上的,DataView.Table 属性可以得到此DataView对应的那个DataTable。
DataView的行叫DataRowView,
可以从DataRowView直接通过 DataRowView.Row 属性得到此DataRowView对应的DataRow

 ConsoleApplication1
{
    class Program
    {
        
static void Main(string[] args)
        {
            SqlConnection conn 
= new SqlConnection("Server=zhuobin;uid=sa;pwd=zhuobin;database=Northwind");
            
string sql = @"select contactname,country from customers";
            
try
            {
                SqlDataAdapter da 
= new SqlDataAdapter();
                da.SelectCommand 
= new SqlCommand(sql,conn);
                
//create the dataset and fill it
                DataSet ds = new DataSet();
                da.Fill(ds,
"customers");
                
//get the data from the datatable
                DataTable dt = ds.Tables["customers"];
                
//create the dataView
                DataView dv = new DataView(dt,"country='Germany'","country",DataViewRowState.CurrentRows);
                
//display the data from data view
                foreach (DataRowView drv in dv)
                {
                    
for (int i = 0; i < dv.Table.Columns.Count; i++)
                    {
                        Console.Write(drv[i]
+"\t");
                    } Console.WriteLine();
                }
            }
            
catch (SqlException ex)
            {
                Console.WriteLine(
"The error:{0}", ex.Message);
            }
            
finally
            {
                conn.Close();
            }
            Console.ReadLine();
        }
    }
}

相关文章: