{"id":360,"date":"2010-10-01T02:11:14","date_gmt":"2010-10-01T02:11:14","guid":{"rendered":"http:\/\/enjoyasp.net\/?p=360"},"modified":"2010-10-01T02:11:14","modified_gmt":"2010-10-01T02:11:14","slug":"dataset-datatable%e6%93%8d%e4%bd%9c","status":"publish","type":"post","link":"https:\/\/enjoyasp.net\/index.php\/2010\/10\/01\/dataset-datatable%e6%93%8d%e4%bd%9c\/","title":{"rendered":"DataSet DataTable\u64cd\u4f5c"},"content":{"rendered":"<p>1\uff0cDataTable dt = GetData(iPageSize, iPageIndex).Tables[0];? \/\/GetData(iPageSize, iPageIndex)\u8fd4\u56deDataSet<br \/>\n? dt.Columns.Add(&#8220;Detail&#8221;);? \/\/\u589e\u52a0\u680f\u4f4d? \u6ce8\u610f\u7684\u4e00\u70b9\u662fdt\u7684\u5217\u540d\u5927\u5c0f\u5199\u4e0d\u654f\u611f\uff0c\u6e90\u4e8esql\u8bed\u53e5\u5927\u5c0f\u5199\u4e0d\u654f\u611f<br \/>\n??????????? foreach (DataRow row in dt.Rows)<br \/>\n??????????? {<br \/>\n??????????????? row[&#8220;Detail&#8221;] =&#8221;123&#8243;<br \/>\n??????????? }<br \/>\n??????????? return dt;<br \/>\nGridView1DataSource = dt;? \/\/gridview datasource\u53ef\u4ee5\u662fdataset, \u4e5f\u53ef\u4ee5\u662fdatatable<br \/>\n? \/\/dt.Columns.Add(&#8220;Detail&#8221;); Detail\u9ed8\u8ba4\u4e3astring\u7c7b\u578b\uff0c\u6307\u5b9a\u7c7b\u578b\u53ef\u7528\uff1a<br \/>\n? ? ?? DataColumn column = new DataColumn(&#8220;pageBy&#8221;);<br \/>\n??????? column.DataType = System.Type.GetType(&#8220;System.Int32&#8221;);<br \/>\n??????? column.AutoIncrement = true;<br \/>\n??????? column.AutoIncrementSeed = 0;<br \/>\n??????? column.AutoIncrementStep = 1;<br \/>\n?????? column.DefaultValue = 0;<br \/>\n??????? dt.Columns.Add(column);<\/p>\n<p>\u52a0\u5217<br \/>\n?DataRow srow = dt.NewRow();<br \/>\n??????????????? row[&#8220;OrderStatus&#8221;] = row[&#8220;OrderStatus&#8221;].ToString();<br \/>\n??????????????? row[&#8220;OrderNums&#8221;] = 1;<br \/>\n??????????????? row[&#8220;OrderAmounts&#8221;] = row[&#8220;Amount&#8221;].ToString();<br \/>\n?????????????? sdt.Rows.Add(srow);<br \/>\n2\uff0c\u6392\u5e8f<br \/>\n?DataView DV = dt.DefaultView;<br \/>\n?DV.Sort = &#8220;department, amount desc&#8221;;<br \/>\n\/\/\u6392\u5e8f\u65f6\u6ce8\u610f\u7684\u4e00\u70b9\u662f\u5217\u7684\u7c7b\u578b\uff0c\u5982amount\u82e5\u662fstring\u578b\uff0c\u5c31\u4e0d\u4f1a\u6309\u6570\u5b57\u6392\u5e8f<\/p>\n<p>\/\/datatable\u662f\u5185\u5b58\u4e2d\u7684\u8868,\u8fd9\u4e2a\u8868\u53ef\u4ee5\u589e\u52a0,\u5220\u9664,update\u8bb0\u5f55\u7684,\u800cdataview\u53ea\u662f\u76f8\u5f53\u4e8e\u89c6\u56fe,\u57fa\u672c\u4e0a\u662f\u7528\u6765\u663e\u793a\u6570\u636e\u7684,? \u7528\u4e8e\u6392\u5e8f\u3001\u7b5b\u9009\u3001\u641c\u7d22\u3001\u7f16\u8f91\u548c\u5bfc\u822a\u7684 DataTable \u7684\u53ef\u7ed1\u5b9a\u6570\u636e\u7684\u81ea\u5b9a\u4e49\u89c6\u56fe\u3002<\/p>\n<p>?\u6267\u884c\u805a\u5408\u51fd\u6570\uff1a\u5982sum,count<br \/>\ndt.Compute(&#8220;Sum(Total)&#8221;, &#8220;EmpID = 5&#8221;);<br \/>\ndt.Compute(&#8220;Sum(fenshu)&#8221;,&#8221;1=1&#8243;);?<br \/>\n\u6ce8\u610f\u6ca1\u6709count(*) count(1) \u8981\u6307\u5b9a\u5177\u4f53\u7684\u5217<br \/>\nSum(expression)\u4e2dexpression\u8981\u6ce8\u610f\u7684\u662f\uff1a<br \/>\n1\uff0cexpression\u8fd9\u4e2a\u53c2\u6570\u4e2d\u7684\u5217\u540d\u4e0d\u80fd\u662f\u6570\u5b57\u5f00\u5934\uff0c\u5426\u5219\u5c31\u4f1a\u62a5\u8fd9\u4e2a\u9519\u3002\uff08\u8fd9\u4e2a\u5f88\u96be\u6392\u67e5\u51fa\u6765\u3002\u3002\u3002\uff09<br \/>\n2\uff0cexpression\u53c2\u6570\u4e2d\u5b57\u6bb5\u7684\u6570\u636e\u7c7b\u578b\u95ee\u9898\uff0c\u4f8b\u5982Sum\uff08\u5b57\u7b26\u7c7b\u578b\uff09\u5c31\u4f1a\u62a5\u8fd9\u4e2a\u9519\u3002<\/p>\n<p>3\uff0c\u67e5\u8be2\uff0c\u53d6\u90e8\u5206\u6570\u636e\u96c6<br \/>\n?? ?string expression = &#8220;Date &gt; &#8216;1\/1\/00&#8242;&#8221;;<br \/>\n?? ?string sortOrder = &#8220;CompanyName DESC&#8221;;<br \/>\n?? ?DataRow[] foundRows = table.Select(expression, sortOrder); \/\/\u67e5\u8be2\u5e26\u6392\u5e8f<br \/>\n?? (1)\u53d6\u90e8\u5206\u884c<br \/>\n?DataView davTemp = new DataView(datSource, &#8220;\u8fc7\u6ee4\u6761\u4ef6&#8221;, &#8220;\u6392\u5e8f\u5b57\u6bb5&#8221;, DataViewRowState.\u5404\u79cd \u72b6\u6001);<br \/>\n\/\/\u628a\u8fc7\u6ee4\u540e\u7684\u8868\u8d4b\u7ed9\u65b0\u8868<br \/>\nDataTable datNew = davTemp.ToTable();<br \/>\n\uff082\uff09\u53d6\u90e8\u5206\u5217<br \/>\nDataTable dat = YourDataTable.DefaultView.ToTable(false, new string[] { &#8220;\u4f60\u8981\u7684\u5217\u540d&#8221;, &#8220;\u4f60\u8981\u7684\u5217\u540d&#8221; });<br \/>\nfalse : \u4e0d\u53bb\u6389\u91cd\u590d\u884c<br \/>\n\uff083\uff09\u5220\u9664\u5217<br \/>\nYourDataTable.Columns.Remove(&#8220;\u5217\u540d&#8221;);<\/p>\n<p>4,\u8bbe\u4e3b\u952e<br \/>\n?? DataTable dt = new DataTable();<br \/>\n??????? dt.Columns.Add(&#8220;id&#8221;);<br \/>\n??????? dt.Columns.Add(&#8220;PartName&#8221;);<br \/>\n??????? dt.Columns.Add(&#8220;Style&#8221;);<br \/>\n??????? dt.Columns.Add(&#8220;quantity&#8221;);<br \/>\n??????? dt.Columns.Add(&#8220;Unit&#8221;);<br \/>\n??????? DataColumn dc1 = new DataColumn(&#8220;Amount&#8221;,typeof(float));<br \/>\n??????? dtAll.Columns.Add(dc1);<br \/>\n??????? \/\/\u589e\u52a0\u4e3b\u952e<br \/>\n??????? DataColumn[] columns = new DataColumn[2];<br \/>\n??????? columns[0] = dt.Columns[&#8220;id&#8221;];<br \/>\n??????? columns[1] = dt.Columns[&#8220;Style&#8221;];<br \/>\n??????? dt.PrimaryKey = columns;<\/p>\n<p>\u6309\u4e3b\u952e\u67e5\u8be2\uff1a<br \/>\n? object[] findTheseVals = new object[2];<br \/>\n?? findTheseVals[0] = id;<br \/>\n?? findTheseVals[1] = Style;<br \/>\n?? DataRow dr = dt.Rows.Find(findTheseVals);<\/p>\n<p>\u4e24\u4e2aDataTable\u5408\u5e76\uff1a merge<br \/>\ndt1.Merge(dt2,true);<br \/>\n\/\/true\u6307\u793a\u5f53dt2\u5b58\u5728\u4e0edt1\u76f8\u540c\u7684\u4e3b\u952e\u503c\u65f6dt1\u662f\u5426\u4e0d\u4fee\u6539\uff0c\u5f53\u4e3afalse\u65f6\u7528dt2\u66f4\u65b0dt1, \u8981\u7262\u8bb0\u7684\u662f\u540c\u4e00\u4e2atable\u4e2d\u4e3b\u952e\u5fc5\u987b\u8981\u4fdd\u6301\u552f\u4e00\uff0c\u82e5\u53ea\u60f3\u4e24\u4e2atable\u7b80\u5355\u7684\u5408\u5728\u4e00\u8d77\uff0c\u90a3\u8981\u5728merge\u4e4b\u524d\u5c06\u4e24\u4e2aDataTable\u7684\u4e3b\u952e\u53bb\u6389\uff0c\u5982\uff1adt1.PrimaryKey = null;<\/p>\n<p>DISTINCT<\/p>\n<p>DataTable dataTable;<\/p>\n<p>DataView dataView = dataTable.DefaultView;<\/p>\n<p>DataTable dataTableDistinct = dataView.ToTable(true,&#8221;FieldName1&#8243;,&#8221;FieldName2&#8243;,&#8221;&#8230;&#8221;);<\/p>\n<p>\/\/\u6ce8\uff1a\u5176\u4e2dToTable\uff08\uff09\u7684\u7b2c\u4e00\u4e2a\u53c2\u6570\u4e3a\u662f\u5426DISTINCT<br \/>\n1\uff0cDataTable dt = GetData(iPageSize, iPageIndex).Tables[0];? \/\/GetData(iPageSize, iPageIndex)\u8fd4\u56deDataSet<br \/>\n? dt.Columns.<span style=\"color: #ff0000;\">Add<\/span>(&#8220;Detail&#8221;);? \/\/\u589e\u52a0\u680f\u4f4d? \u6ce8\u610f\u7684\u4e00\u70b9\u662fdt\u7684\u5217\u540d\u5927\u5c0f\u5199<span style=\"color: #ff0000;\">\u4e0d\u654f\u611f<\/span>\uff0c\u6e90\u4e8esql\u8bed\u53e5\u5927\u5c0f\u5199\u4e0d\u654f\u611f<br \/>\n??????????? foreach (DataRow row in dt.Rows)<br \/>\n??????????? {<br \/>\n??????????????? row[&#8220;Detail&#8221;] =&#8221;123&#8243;<br \/>\n??????????? }<br \/>\n??????????? return dt;<br \/>\nGridView1DataSource = dt;? \/\/gridview datasource\u53ef\u4ee5\u662fdataset, \u4e5f\u53ef\u4ee5\u662fdatatable<br \/>\n? \/\/dt.Columns.<span style=\"color: #ff0000;\">Add<\/span>(&#8220;Detail&#8221;); Detail\u9ed8\u8ba4\u4e3astring\u7c7b\u578b\uff0c\u6307\u5b9a\u7c7b\u578b\u53ef\u7528\uff1a<br \/>\n? ? ?? DataColumn column = new DataColumn(&#8220;pageBy&#8221;);<br \/>\n??????? column.DataType = System.Type.GetType(&#8220;System.Int32&#8221;);<br \/>\n??????? column.AutoIncrement = true;<br \/>\n??????? column.AutoIncrementSeed = 0;<br \/>\n??????? column.AutoIncrementStep = 1;<br \/>\n?????? column.<span style=\"color: #ff0000;\">DefaultValue <\/span>= 0;<br \/>\n??????? dt.Columns.Add(column);<\/p>\n<p>\u52a0\u5217<br \/>\n?DataRow srow = dt.NewRow();<br \/>\n??????????????? row[&#8220;OrderStatus&#8221;] = row[&#8220;OrderStatus&#8221;].ToString();<br \/>\n??????????????? row[&#8220;OrderNums&#8221;] = 1;<br \/>\n??????????????? row[&#8220;OrderAmounts&#8221;] = row[&#8220;Amount&#8221;].ToString();<br \/>\n?????????????? sdt.Rows.<span style=\"color: #ff0000;\">Add<\/span>(srow);<br \/>\n2\uff0c\u6392\u5e8f<br \/>\n?DataView DV = dt.DefaultView;<br \/>\n?DV.Sort = &#8220;department, amount desc&#8221;;<br \/>\n\/\/\u6392\u5e8f\u65f6\u6ce8\u610f\u7684\u4e00\u70b9\u662f\u5217\u7684\u7c7b\u578b\uff0c\u5982amount\u82e5\u662fstring\u578b\uff0c\u5c31\u4e0d\u4f1a\u6309\u6570\u5b57\u6392\u5e8f<\/p>\n<p>\/\/datatable\u662f\u5185\u5b58\u4e2d\u7684\u8868,\u8fd9\u4e2a\u8868\u53ef\u4ee5\u589e\u52a0,\u5220\u9664,update\u8bb0\u5f55\u7684,\u800cdataview\u53ea\u662f\u76f8\u5f53\u4e8e\u89c6\u56fe,\u57fa\u672c\u4e0a\u662f\u7528\u6765\u663e\u793a\u6570\u636e\u7684,? \u7528\u4e8e\u6392\u5e8f\u3001\u7b5b\u9009\u3001\u641c\u7d22\u3001\u7f16\u8f91\u548c\u5bfc\u822a\u7684 DataTable \u7684\u53ef\u7ed1\u5b9a\u6570\u636e\u7684\u81ea\u5b9a\u4e49\u89c6\u56fe\u3002<\/p>\n<p>?\u6267\u884c\u805a\u5408\u51fd\u6570\uff1a\u5982sum,count<br \/>\n<span style=\"color: #ff0000;\">dt.Compute<\/span>(<span>&#8220;Sum(Total)&#8221;, &#8220;EmpID = 5&#8221;<\/span>);<br \/>\n<span style=\"color: #ff0000;\">dt.Compute<\/span>(&#8220;Sum(fenshu)&#8221;,&#8221;1=1&#8243;);?<br \/>\n\u6ce8\u610f\u6ca1\u6709count(*) count(1) \u8981\u6307\u5b9a\u5177\u4f53\u7684\u5217<br \/>\nSum(expression)\u4e2dexpression\u8981\u6ce8\u610f\u7684\u662f\uff1a<br \/>\n1\uff0c<span>expression<\/span>\u8fd9\u4e2a\u53c2\u6570\u4e2d\u7684\u5217\u540d\u4e0d\u80fd\u662f\u6570\u5b57\u5f00\u5934\uff0c\u5426\u5219\u5c31\u4f1a\u62a5\u8fd9\u4e2a\u9519\u3002\uff08\u8fd9\u4e2a\u5f88\u96be\u6392\u67e5\u51fa\u6765\u3002\u3002\u3002\uff09<br \/>\n2\uff0c<span style=\"color: #000000;\">expression<\/span>\u53c2\u6570\u4e2d\u5b57\u6bb5\u7684\u6570\u636e\u7c7b\u578b\u95ee\u9898\uff0c\u4f8b\u5982Sum\uff08\u5b57\u7b26\u7c7b\u578b\uff09\u5c31\u4f1a\u62a5\u8fd9\u4e2a\u9519\u3002<\/p>\n<p>3\uff0c\u67e5\u8be2\uff0c\u53d6\u90e8\u5206\u6570\u636e\u96c6<br \/>\n<span>?? ?<\/span>string expression = &#8220;Date &gt; &#8216;1\/1\/00&#8242;&#8221;;<br \/>\n<span>?? ?<\/span>string sortOrder = &#8220;CompanyName DESC&#8221;;<br \/>\n<span>?? ?<\/span>DataRow[] foundRows = table.<span style=\"color: #ff0000;\">Select<\/span>(expression, sortOrder); \/\/\u67e5\u8be2\u5e26\u6392\u5e8f<br \/>\n?? (1)\u53d6\u90e8\u5206\u884c<br \/>\n?DataView davTemp = new DataView(datSource, &#8220;\u8fc7\u6ee4\u6761\u4ef6&#8221;, &#8220;\u6392\u5e8f\u5b57\u6bb5&#8221;, DataViewRowState.\u5404\u79cd \u72b6\u6001);<br \/>\n\/\/\u628a\u8fc7\u6ee4\u540e\u7684\u8868\u8d4b\u7ed9\u65b0\u8868<br \/>\nDataTable datNew = davTemp.ToTable();<br \/>\n\uff082\uff09\u53d6\u90e8\u5206\u5217<br \/>\nDataTable dat = YourDataTable.DefaultView.ToTable(false, new string[] { &#8220;\u4f60\u8981\u7684\u5217\u540d&#8221;, &#8220;\u4f60\u8981\u7684\u5217\u540d&#8221; });<br \/>\nfalse : \u4e0d\u53bb\u6389\u91cd\u590d\u884c<br \/>\n\uff083\uff09\u5220\u9664\u5217<br \/>\nYourDataTable.Columns.Remove(&#8220;\u5217\u540d&#8221;);<\/p>\n<p>4,\u8bbe\u4e3b\u952e<br \/>\n?? DataTable dt = new DataTable();<br \/>\n??????? dt.Columns.Add(&#8220;id&#8221;);<br \/>\n??????? dt.Columns.Add(&#8220;PartName&#8221;);<br \/>\n??????? dt.Columns.Add(&#8220;Style&#8221;);<br \/>\n??????? dt.Columns.Add(&#8220;quantity&#8221;);<br \/>\n??????? dt.Columns.Add(&#8220;Unit&#8221;);<br \/>\n??????? DataColumn dc1 = new DataColumn(&#8220;Amount&#8221;,typeof(float));<br \/>\n??????? dtAll.Columns.Add(dc1);<br \/>\n??????? \/\/\u589e\u52a0\u4e3b\u952e<br \/>\n??????? DataColumn[] columns = new DataColumn[2];<br \/>\n??????? columns[0] = dt.Columns[&#8220;id&#8221;];<br \/>\n??????? columns[1] = dt.Columns[&#8220;Style&#8221;];<br \/>\n??????? dt.PrimaryKey = columns;<\/p>\n<p>\u6309\u4e3b\u952e\u67e5\u8be2\uff1a<br \/>\n? object[] findTheseVals = new object[2];<br \/>\n?? findTheseVals[0] = id;<br \/>\n?? findTheseVals[1] = Style;<br \/>\n?? DataRow dr = dt.Rows.Find(findTheseVals);<\/p>\n<p>\u4e24\u4e2aDataTable\u5408\u5e76\uff1a merge<br \/>\ndt1.Merge(dt2,true);<br \/>\n\/\/true\u6307\u793a\u5f53dt2\u5b58\u5728\u4e0edt1\u76f8\u540c\u7684\u4e3b\u952e\u503c\u65f6dt1\u662f\u5426\u4e0d\u4fee\u6539\uff0c\u5f53\u4e3afalse\u65f6\u7528dt2\u66f4\u65b0dt1, \u8981\u7262\u8bb0\u7684\u662f\u540c\u4e00\u4e2atable\u4e2d\u4e3b\u952e\u5fc5\u987b\u8981\u4fdd\u6301\u552f\u4e00\uff0c\u82e5\u53ea\u60f3\u4e24\u4e2atable\u7b80\u5355\u7684\u5408\u5728\u4e00\u8d77\uff0c\u90a3\u8981\u5728merge\u4e4b\u524d\u5c06\u4e24\u4e2aDataTable\u7684\u4e3b\u952e\u53bb\u6389\uff0c\u5982\uff1adt1.PrimaryKey = null;<\/p>\n<p>DISTINCT<\/p>\n<p>DataTable dataTable;<\/p>\n<p>DataView dataView = dataTable.DefaultView;<\/p>\n<p>DataTable dataTableDistinct = dataView.ToTable(true,&#8221;FieldName1&#8243;,&#8221;FieldName2&#8243;,&#8221;&#8230;&#8221;);<\/p>\n<p>\/\/\u6ce8\uff1a\u5176\u4e2dToTable\uff08\uff09\u7684\u7b2c\u4e00\u4e2a\u53c2\u6570\u4e3a\u662f\u5426DISTINCT<\/p>\n","protected":false},"excerpt":{"rendered":"<p>1\uff0cDataTable dt = GetData(iPageSize, iPageIndex).Tables[ [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[35],"tags":[],"class_list":["post-360","post","type-post","status-publish","format-standard","hentry","category-aspdotnet"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/enjoyasp.net\/index.php\/wp-json\/wp\/v2\/posts\/360","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/enjoyasp.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/enjoyasp.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/enjoyasp.net\/index.php\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/enjoyasp.net\/index.php\/wp-json\/wp\/v2\/comments?post=360"}],"version-history":[{"count":0,"href":"https:\/\/enjoyasp.net\/index.php\/wp-json\/wp\/v2\/posts\/360\/revisions"}],"wp:attachment":[{"href":"https:\/\/enjoyasp.net\/index.php\/wp-json\/wp\/v2\/media?parent=360"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/enjoyasp.net\/index.php\/wp-json\/wp\/v2\/categories?post=360"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/enjoyasp.net\/index.php\/wp-json\/wp\/v2\/tags?post=360"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}