ASP.NET中DataTable的用法
引言:最近用到虚拟表 所以我就搜索了一些Datatable的常用用法
DataTable Table = new DataTable("mytable");//创建一个名为mytable的DataTable对象 Table.CaseSensitive = false;//设置不区分大小写 Table.MinimumCapacity = 100;//设置DataTable初始大小 Table.TableName = "newtable"; //设置DataTable的名称
//DataColumn Colum = new DataColumn();//创建一个DataColumn //Colum = Table.Columns.Add("id", typeof(int));//增加一个列 //Colum = Table.Columns.Add("title", typeof(string));//增加一个列 //表名.Columns.Add("列名",typeof(数据类型)); table.Columns.Add("UserName", typeof(System.String));//直接添加 //添加基于表达式的列 //table.Columns.Add("ItemTotal", typeof(Decimal), "Quantity*UnitPrice");
//表名.Columns.Remove("列名") //删除列名 table.Columns.Remove("minArea");
//表名.Columns["列名"].SetOrdinal(新序号) //调整列位置及序号 table.Columns["num"].SetOrdinal(1); //表名.Columns["旧列名"].ColumnName="新列名" //修改列名 table.Columns["num"].ColumnName = "nums";
//设置主键为UserId //表名.PrimaryKey = new DataColumn[] { 表名.Columns["列名"] }; table.PrimaryKey = new DataColumn[] { table.Columns["UserId"] };
//表名.Constraints.Add("约束名",表名.Columns["列名"],true) //创建唯一约束 table.Constraints.Add("PK_UserId",table.Columns["UserId"],true);
//处理自动增长列 //先创建或获取列 DataColumn col = tbl.Columns.Add("OrderID", typeof(int)); col.AutoIncrement = true; //获取或设置一个值,该值指示对于添加到该表中的新行,列是否将列的值自动递增 col.AutoIncrementSeed = -1; //获取或设置其 System.Data.DataColumn.AutoIncrement 属性设置为 true 的列的起始值 col.AutoIncrementStep = -1; //获取或设置其 System.Data.DataColumn.AutoIncrement 属性设置为 true 的列使用的增量 col.ReadOnly = true; //获取或设置一个值,该值指示一旦向表中添加了行,列是否还允许更改
//创建新行方式给虚拟表中添加数据 DataRow row =table.NewRow();使用DataTable的NewRow方法创建一个新DataRow对象 row[0]="编号";;//使用索引赋值列 row["UserName"] = "New UserName";;//使用列名赋值列 table.Rows.Add(row); //调用Rows.Add来添加行 table.Rows.Add("编号","New UserName");增加列 //LoadDataRow方法。此方法类似于被重载的Add方法,利用该方法可以为新的DataRow提供值清单, //要使用这一方法,在第一个参数中提供一个数组。该数组中的项对应于表中的列。 //第二个参数AccepteChanges控制新DataRow的RowState属性, //为这一参数传递False值,将会导致新行的RowState为Added table.LoadDataRow(new object[] { "编号", "New UserName" },false); object[] aValues ={"编号","New UserName"}; table.LoadDataRow(aValues,false);
//修改现有行 //使用Rows集合的Find方法来查找DataTable中的一行,然后改变每一列的值 DataRow row = table.Rows.Find("UserId"); if (row == null) { Console.Write("没有这一列"); } else { row["UserName"] = "new Value"; } //使用ItemArray属性可用于在一行代码获取或修改多个行值,返回和接受一个数组,其中每一项对应于一列。 //如果希望仅修改行中可用值的一个子集,使用Null或Nothing来指示不希望覆盖DataRow中的列的值 DataRow row = table.Rows.Find("UserId"); if (row == null) { Console.Write("没有这一列"); } else { row.ItemArray = new object[] { null, "New Value" }; }
//删除现有行 //首先获取行 DataRow row = table.Rows.Find("UserId"); if (row == null) { Console.Write("没有这一列"); } else { table.Rows.Remove(row); //or table.Rows.RemoveAt(table.Rows.IndexOf(row)); } //获取指定条件行数组,删除指定条件多行 //DataRow[] DeRow = 表名.Select("列名='数值'"); //foreach (DataRow dr in DeRow) { 表名.Rows.Remove(dr); }
//查看是否为空 DataRow rowCustomer; rowCustomer = table.Rows.Find("id"); if(rowCustomer.IsNull("Phone")) Console.WriteLine("为空"); else Console.WriteLine("不为空"); //赋予空值 rowCustomer["Phone"] = DBNull.Value;
以上就是DataTable的用法了
该文章转载于:博客园-Crazy Ma