C#奇趣5分彩DataSet、DataTable、DataRow数据的复制方式
DataSet 东西是撑持 ADO.NET的断开式、散布式数据计划的焦点东西 ,用处很是普遍.咱们良多时辰须要操纵此奇趣5分彩的数据,比方获得一个DataTable的数据或复制另外一个DataTabe奇趣5分彩的数据或是DataRow的数据,可是只要DataSet和DataTable的复制是撑持深层复制的,便是说不只能复制元素的布局,并且能复制元素的数据,而DatatDataRow不相干的复制的方式,上面将简略先容下这些数据元素的复制题目。
DataTable sourceTable; DataTable objectTable; DatatDataRow sourceRow; DatatDataRow objectRow; DataRow tempRow; DataSet souceDataSet = new DataSet();
复制DataSet
DataSet object = souceDataSet.Copy();//深复制 DataSet object = souceDataSet.Clone();//浅复制,只复制架构
复制DataTable
objectTable = sourceTable .Copy();//深复制 objectTable = sourceTable .Clone();//浅复制,只复制架构
复制DataRow
那咱们应当若何复制DataRow的数据了,上面将侧重先容几种方式
1、ImportDataRow方式:
public void ImportDataRow( DataRow DataRow); objectTable = sourceTable.clone();//必须先复制表的架构,使具备不异的的列或干奇趣5分彩! foreach (DataRow oRow in sourceTable) { objectTable.ImportDataRow(oRow);//在objectTable奇趣5分彩增加一个新行,并将sourceRow的值复制出来,请求表的布局一样! }
2、自界说复制
objectTable.Columns.Add ("id");//不须要奇趣5分彩一样的架构,只复制本身须要的列! Object [] myArry = new Object [1]; foreach (DataRow oRow in sourceTable) { tempRow = objectTable.NewRow();//此方式必须挪用! myArry[0] = oRow["id"];//若是myArry奇趣5分彩不源表奇趣5分彩的id列的话就会报错! tempRow.ItemArray = myArry;//ItemArray属性为Object范例数奇趣5分彩,按照法式的须要须要可自行复制多个列的数据! objectTable.Rows.Add(tempRow); //此方式必须挪用,不然DataRow奇趣5分彩的数据将不能显现! }
3、LoadDataRow方式:
public DataRow LoadDataRow(Object[] values,bool fAcceptChanges); Object[] newRow = new Object[3]; // 设置东西数奇趣5分彩的值 newRow[0] = "Hello"; newRow[1] = "World"; newRow[2] = "two"; DataRow myRow; ObjectTable.BeginLoadData(); // 将新行增加到表奇趣5分彩 myRow = ObjectTable.LoadDataRow(newRow, true);//标记要设置为true,表现增加新行 ObjectTable.EndLoadData();
该方式比拟庞杂,若是只是简略的复制现奇趣5分彩行的数据来增加新行的话倡议不要接纳,具体用法请参看sdk文挡。
DataRow的复制
若是间接经由过程RequirDT.Rows.Add(row),则运转时会呈现"该行已属于一个表"的提醒毛病!至于此奇趣5分彩的缘由,经由过程DataSet和DataTable类比,从凡是意思来讲应当不会呈现毛病提醒,可是细细想来,我感觉应当是由于DataTable的架构设想而至,鉴戒干奇趣5分彩数据库奇趣5分彩的干奇趣5分彩表,datacolumn界说了DataTable的全体架构,而具体的datarow是合适该架构的一条记实罢了!以是具备该架构的行只能增加到具备不异架构的表奇趣5分彩!同时RequireDT.Rows.Add()完奇趣5分彩捕获 System.ArgumentException(The row ther belongs to another table or ready belongs to this table.)我想其完奇趣5分彩也奇趣5分彩定了不能经由过程该方式完奇趣5分彩!
鉴于以上
1.ImportRow方式
DataTable RequireDT = SourceDT.Clone(); RequireDT.ImportRow(row);
2.见网上奇趣5分彩如许完奇趣5分彩的
RequireDT.Rows.Add(row.ItemArray)
可是我编写代码并不能完奇趣5分彩,该函数的功效是Creates a row using specified values and adds it to the System.Data.DataRowCollection。以是也须要先拷贝源数据表的布局,方可胜利!
3. 以下方式也能够完奇趣5分彩,可是也得先复制表的布局
ObjectTable.BeginLoadData(); myRow = ObjectTable.LoadDataRow(newRow, true); ObjectTable.EndLoadData();
以上便是本文的全数内容,但愿对大师的进奇趣5分彩奇趣5分彩所赞助,也但愿大师多多撑持剧本之奇趣5分彩。
相干文章
奇趣5分彩:C#奇趣5分彩Winform获得文件途径的方式实例小结
这篇文章首要先容了C#奇趣5分彩Winform获得文件途径的方式,以实例情势较为具体的总结了WinForm对于途径操纵的经奇趣5分彩操纵技能,具备必然参考鉴戒代价,须要的伴侣能够参考下2015-10-10
最新批评