.Net frameworkünde DataView, filtreleme, sıralama, arama, düzenleme ve gezinme için bir DataTable‘ın nesnesine bağlanabilir, özelleştirilmiş bir görünümünü temsil eder. DataView herhangi bir veri depolamaz, karşılık gelen DataTable‘ın bağlantılı bir görünümünü temsil eder. DataTable ise, bellek içi verilerin bir tablosunu temsil eder.
DataView.ToTable metodunun dört aşırı yüklenmiş yöntemi vardır, bunlar ToTable(), ToTable(String), ToTable(Boolean, String []) ve ToTable(String, Boolean, String []).
DataView ToTable() metodu, var olan bir DataView‘daki satırları temel alan yeni bir DataTable oluşturur ve döndürür. bu yöntem dönüş değeri türü, istenen satırları ve sütunları içeren yeni bir DataTable örneğini temsil eden System.Data.DataTable‘dır. DataTable döndürülen bu yöntem, giriş tablosuyla aynı sütunları içerir. DataTable adını da aynı kaynak DataTable ile döndürdü.
DataView ToTable(String) aşırı yüklenmiş yöntemi de mevcut bir DataView içindeki satırlara dayalı bir DataTable oluşturur ve döndürür. ToTable(String) metodu, ‘tableName’ adlı bir parametreyi iletmeyi gerektirir. bu parametre değeri, döndürülen DataTable’ın adını temsil eder. bu yöntemin döndürdüğü DataTable, giriş tablosu ile aynı sütunları içerir. ancak döndürülen DataTable için bir tablo adı da belirtebiliriz.
DataView ToTable(Boolean, String[]) aşırı yüklenmiş metodu, ‘farklı’ ve ‘sütun adları’ adlı iki gerekli parametreye sahiptir. “farklı” parametre değeri veri türü System.Boolean’dır. bu parametre değeri ‘true’, döndürülen DataTable’ın tüm sütunları için farklı değerlere sahip satırlar içerdiğini gösterir. bu parametrenin varsayılan değeri “false” tır.
ToTable(Boolean, String[]) metodunun ‘columnNames’ parametre değer türü, döndürülen DataTable nesnesine dahil edilecek sütun adlarının listesini içeren bir dize dizisini temsil eden System.String[] ‘dir. bu nedenle, bu parametreyi kullanarak, döndürülen DataTable’ın yalnızca farklı satırlar içerip içermediğini belirleyebiliriz ve ayrıca sütun adlarını da belirleyebiliriz.
DataView ToTable(String, Boolean, String []) aşırı yüklenmiş yöntem, “tableName”, “farklı” ve “columnNames” adlı üç parametreyi iletmeyi gerektirir. Bu yöntemi kullanarak, döndürülen DataTable’ın tablo adını, sütun adlarını belirleyebiliriz ve tüm sütunları için yalnızca farklı değerler içerir veya içermez.
Aşağıdaki Ado.NET C# örnek kodu, bir asp.net uygulamasında çalışma zamanında programlı olarak mevcut bir DataView’daki satırlara dayalı yeni bir DataTable’ı nasıl oluşturabileceğimizi göstermektedir.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 | <%@ Page Language="C#" %> <%@ Import Namespace="System.Data" %> <!DOCTYPE html> <script runat="server"> protected void Button1_Click(object sender, System.EventArgs e) { DataTable dt = new DataTable(); dt.TableName = "Kitaplar"; DataColumn dc1 = new DataColumn(); dc1.ColumnName = "KitapID"; dc1.DataType = typeof(int); dc1.AllowDBNull = false; dc1.Unique = true; DataColumn dc2 = new DataColumn(); dc2.ColumnName = "Kategori"; dc2.DataType = typeof(string); DataColumn dc3 = new DataColumn(); dc3.ColumnName = "Kitap Adı"; dc3.DataType = typeof(string); DataColumn dc4 = new DataColumn(); dc4.ColumnName = "Yazar"; dc4.DataType = typeof(string); dt.Columns.AddRange(new DataColumn[] { dc1, dc2, dc3, dc4 }); dt.Rows.Add(new object[] { 1, "Roman", "Hayvan Çiftliği", "George Orwell" }); dt.Rows.Add(new object[] { 2, "Roman", "1984", "George Orwell" }); dt.Rows.Add(new object[] { 3, "Öykü", "Sırça Köşk", "Sabahattin Ali" }); dt.AcceptChanges(); Label1.Text = "Kaynak DataTable"; GridView1.DataSource = dt.DefaultView; GridView1.DataBind(); //bu satır yeni bir DataView oluştur DataView dView = new DataView(dt); dView.RowFilter = "Kategori = 'Roman'"; Label2.Text = "Burada yeni bir DataView oluşturuyoruz ve RowFilter'ı ayarlıyoruz (Kategori = 'Roman')"; GridView2.DataSource = dView; GridView2.DataBind(); //bu satır DataView'dan yeni bir DataTable oluşturur DataTable dt2 = dView.ToTable(); Label3.Text = "Burada DataView'dan yeni bir DataTable oluşturuyoruz"; GridView3.DataSource = dt2; GridView3.DataBind(); } </script> <html lang="en-US"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title> TASARIMKODLAMA.COM </title> <link href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" rel="stylesheet"> </head> <body> <div class="container"> <form id="form1" runat="server"> <div> <h2> Ado.net'te yeni bir DataTable oluşturmak için DataView ToTable yöntemi nasıl kullanılır </h2> <hr color="CornFlowerBlue" /> <asp:Label ID="Label1" runat="server" Font-Size="Large" CssClass="alert alert-primary mb-1 d-block" > </asp:Label> <asp:GridView ID="GridView1" runat="server" CssClass="table table-striped" > </asp:GridView> <br /> <asp:Label ID="Label2" runat="server" CssClass="alert alert-warning mb-1 d-block" ></asp:Label> <asp:GridView ID="GridView2" runat="server" CssClass="table table-striped table-dark" > </asp:GridView> <br /> <asp:Label ID="Label3" runat="server" CssClass="alert alert-warning mb-1 d-block" > </asp:Label> <asp:GridView ID="GridView3" runat="server" CssClass="table table-striped table-dark" > </asp:GridView> <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="GridView Doldur" CssClass="btn btn-primary btn-lg" /> </div> </form> </div> </body> </html> |
Yorum Yap