DataSet DataTable DataView DataRow的关系和区别

 

每一个DataSet都是一个或多个DataTable 对象的集合(DataTable相当于数据库中的表),这些对象由数据行(DataRow)、数据列(DataColumn)等组成。
DataView是对某一个DataTable建立视图,用来在观察数据时提供排序和过滤的功能。

 1.DataSet与DataTable的相互转换
                    DataSet ds = new DataSet();//也可以是一段获取sql的语句
                    DataTable dt = ds.Tables[0];

这样获取到了ds中的对象集合也就是数据库中的表格数据集。

               
2.DataTable的简单操作
                    1)获取所有行。
                    DataRow[] rows = dt.Select();
                    或者可以这样写获取单行数   DataRow row =dt.Tables[0].Rows[0];
                    2)按主键顺序(如没有主键,则按照添加顺序)获取符合筛选条件的行。
                    DataRow[] rows = dt.Select("ID>1");
                    
                    3)获取符合筛选条件的行,并按指定的排序条件排序。
                    DataRow[] rows = dt.Select("ID>1","ID DESC");

                    4)获取符合筛选条件和指定状态的行,并按指定的排序条件排序。
                    string strExpr = "ID>1";
                    string strSort = "ID DESC";
                    DataRow[] foundRows = dt.Select(strExpr, strSort, DataViewRowState.OriginalRows); 
3.合并两个DataTable表的数据
                    DataTable dt1 = ds.Tables[0];
                    DataTable dt2 = ds.Tables[1];
                    dt1.Merge(dt2, true, MissingSchemaAction.AddWithKey);
                    //或者
                    //将两个DataTable合并成一个
                    DataTable d1 = null;//源数据1
                    DataTable d2 = null;//源数据2
                    DataTable newDataTable = d1.Copy();//复制出一个新表
                    //添加DataTable2的数据
                    foreach (DataRow dr in d2.Rows)
                    {
                        newDataTable.ImportRow(dr);//将两个datatable合并
                    }
4.DataView
                    DataView dv = ds.Tables[0].DefaultView;
                    //或
                    DataView dv = new DataView(ds.Tables["Product"], "ID > 1", "ID DESC",
                    DataViewRowState.CurrentRows);
5.DataColumn创建与赋值
                  DataColumn dc = new DataColumn("ID", typeof(string));
                  dt.Columns.Add(dc);
                  DataRow row = dt.NewRow();
                  row["ID"] = "1";

获取数据行的写法:

1.

DataSet value = obj.GetSQLDataset("SELECT * FROM tbgZJBudgetImport WHERE State in ('0','1') AND BudgetYear=" + DropDownList_Year.SelectedValue);
DataRow ZJBudgetimport = value.Tables[0].Rows[0];

 

2.可以参考

DataSet dsZJBudgetList = obj.GetSQLDataset("Select * FROM tbgZJBudgetImportList Where ZJBudgetImportID =" + ZJBudgetImportID);
DataView dvBudgetListG = dsZJBudgetList.Tables[0].DefaultView;
DataRow drBudgetList = dtUpdate.Rows[0];
string ZJBudgetImportListID=dvBudgetListG[0].Row["ZJBudgetImportListID"].ToString().Trim();

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值