Nasıl C # DataTable oluşturmak ve nasıl satır eklemek için?


197

Nasıl bir DataTable C # oluşturmak?

Bunu beğendim:

 DataTable dt = new DataTable();
 dt.clear();
 dt.Columns.Add("Name");
 dt.Columns.Add("Marks");

DataTable'ın yapısını nasıl görebilirim?

Şimdi eklemek istediğiniz Ravi'yi için Nameve 500 için Marks. Bunu nasıl yapabilirim?


2
@Şirin. Sadece bir açıklama - .NET 3.5 kullanıyorsanız, gerçekten LINQ to SQL neler sunduğunu görmek gerekir. DataTable / DataSet yolunda gitmeye karar verirseniz, en azından güçlü bir şekilde yazılan DataTable'lar oluşturmaya bakın.
RichardOD

Yanıtlar:


256

İşte kod:

DataTable dt = new DataTable(); 
dt.Clear();
dt.Columns.Add("Name");
dt.Columns.Add("Marks");
DataRow _ravi = dt.NewRow();
_ravi["Name"] = "ravi";
_ravi["Marks"] = "500";
dt.Rows.Add(_ravi);

Yapıyı görmek veya daha ziyade şema olarak yeniden ifade etmek için, aşağıdakileri yaparak bir XML dosyasına dışa aktarabilirsiniz.

Yalnızca şemayı / yapıyı dışa aktarmak için şunları yapın:

dt.WriteXMLSchema("dtSchemaOrStructure.xml");

Ayrıca, verilerinizi de dışa aktarabilirsiniz:

dt.WriteXML("dtDataxml");

8
DataTable sınıfında AddRow yöntemi yoktur. Dt.Rows.Add (_ravi) yapmalısınız; yerine
Salamander2007

1
Ve AddRow diye bir şey yok. Bu DataTable.Rows.Add ()
djdd87

CurrentRows dışında bir filtreyle DataView kullanıyorsanız, dt.AcceptChanges () yöntemini çağırmayı unutmayın.
Salamander2007

@DanD, @ Salamander2007: kabul etti. Şimdi değiştirdim. Hata için sry, bu oldu bcoz Bu şeyi destekleyen yazılı veri setleri kullanın.
bu. __curious_geek

@phoenix: Asker sorusunun cevabımla mutlu bir şekilde ilişki kurmasını istiyorum.
bu. __curious_geek

66

Ayrıca bir nesne dizisine de geçebilirsiniz, şöyle:

DataTable dt = new DataTable();
dt.Clear();
dt.Columns.Add("Name");
dt.Columns.Add("Marks");
object[] o = { "Ravi", 500 };
dt.Rows.Add(o);

Ya da:

dt.Rows.Add(new object[] { "Ravi", 500 });

11
Bu konuda başka bir alternatif, Addyukarıda gösterilen yöntemin değişken sayıda paramite sahip bir aşırı yüke sahip olduğunu not etmektir , böylece bunu kısaltabilir dt.Rows.Add("Ravi", 500);ve aynı şekilde çalışabilirsiniz. Bu yaklaşımlardan herhangi biriyle ilgili büyük bir uyarı: bu parametreleri sütunların tanımlandığı sırayla sağlamanız gerekir, aksi takdirde bir hata alırsınız. (Dikkatli kullanın!)
Funka

34
// Create a DataTable and add two Columns to it
DataTable dt=new DataTable();
dt.Columns.Add("Name",typeof(string));
dt.Columns.Add("Age",typeof(int));

// Create a DataRow, add Name and Age data, and add to the DataTable
DataRow dr=dt.NewRow();
dr["Name"]="Mohammad"; // or dr[0]="Mohammad";
dr["Age"]=24; // or dr[1]=24;
dt.Rows.Add(dr);

// Create another DataRow, add Name and Age data, and add to the DataTable
dr=dt.NewRow();
dr["Name"]="Shahnawaz"; // or dr[0]="Shahnawaz";
dr["Age"]=24; // or dr[1]=24;
dt.Rows.Add(dr);

// DataBind to your UI control, if necessary (a GridView, in this example)
GridView1.DataSource=dt;
GridView1.DataBind();

30

DataTable Oluşturun:

DataTable MyTable = new DataTable(); // 1
DataTable MyTableByName = new DataTable("MyTableName"); // 2

Tabloya sütun ekle:

 MyTable.Columns.Add("Id", typeof(int));
 MyTable.Columns.Add("Name", typeof(string));

DataTable yöntemi 1'e satır ekleyin:

DataRow row = MyTable.NewRow();
row["Id"] = 1;
row["Name"] = "John";
MyTable.Rows.Add(row);

DataTable yöntemi 2'ye satır ekleyin:

MyTable.Rows.Add(2, "Ivan");

DataTable yöntemi 3'e satır ekle (Aynı yapıya göre başka bir tablodan satır ekle):

MyTable.ImportRow(MyTableByName.Rows[0]);

DataTable yöntemi 4'e satır ekle (Başka bir tablodan satır ekle):

MyTable.Rows.Add(MyTable2.Rows[0]["Id"], MyTable2.Rows[0]["Name"]);

DataTable yöntemi 5'e satır ekle (Bir dizine satır ekle):

MyTable.Rows.InsertAt(row, 8);

24

Satır eklemek için:

DataRow row = dt.NewRow();
row["Name"] = "Ravi";
row["Marks"] = 500;
dt.Rows.Add(row);

Yapıyı görmek için:

Table.Columns

18

Dört satır yerine DataRow.Add (params object [] değerleri) kullanarak bir astar yazabilirsiniz .

dt.Rows.Add("Ravi", "500");

Yeni DataTablenesne oluştururken , bir sonraki ifadede buna gerek yokturClear DataTable . DataTable.Columns.AddRangeOn deyimiyle sütun eklemek için de kullanabilirsiniz . Tam kod olurdu.

DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[] { new DataColumn("Name"), new DataColumn("Marks") });     
dt.Rows.Add("Ravi", "500");

14

Tek bir satıra Satır ekleyebilirsiniz

    DataTable table = new DataTable();
    table.Columns.Add("Dosage", typeof(int));
    table.Columns.Add("Drug", typeof(string));
    table.Columns.Add("Patient", typeof(string));
    table.Columns.Add("Date", typeof(DateTime));

    // Here we add five DataRows.
    table.Rows.Add(25, "Indocin", "David", DateTime.Now);
    table.Rows.Add(50, "Enebrel", "Sam", DateTime.Now);
    table.Rows.Add(10, "Hydralazine", "Christoff", DateTime.Now);
    table.Rows.Add(21, "Combivent", "Janet", DateTime.Now);
    table.Rows.Add(100, "Dilantin", "Melanie", DateTime.Now);

11
DataTable dt=new DataTable();
Datacolumn Name = new DataColumn("Name");
Name.DataType= typeoff(string);
Name.AllowDBNull=false; //set as null or not the default is true i.e null
Name.MaxLength=20; //sets the length the default is -1 which is max(no limit)
dt.Columns.Add(Name);
Datacolumn Age = new DataColumn("Age", typeoff(int));`

dt.Columns.Add(Age);

DataRow dr=dt.NewRow();

dr["Name"]="Mohammad Adem"; // or dr[0]="Mohammad Adem";
dr["Age"]=33; // or dr[1]=33;
dt.add.rows(dr);
dr=dt.NewRow();

dr["Name"]="Zahara"; // or dr[0]="Zahara";
dr["Age"]=22; // or dr[1]=22;
dt.rows.add(dr);
Gv.DataSource=dt;
Gv.DataBind();

9
DataTable dt=new DataTable();
DataColumn Name = new DataColumn("Name",typeof(string)); 

dt.Columns.Add(Name);
DataColumn Age = new DataColumn("Age", typeof(int));`

dt.Columns.Add(Age);

DataRow dr=dt.NewRow();

dr["Name"]="Kavitha Reddy"; 
dr["Age"]=24; 
dt.add.Rows(dr);
dr=dt.NewRow();

dr["Name"]="Kiran Reddy";
dr["Age"]=23; 
dt.Rows.add(dr);
Gv.DataSource=dt;
Gv.DataBind();

8

Bunun için datatable'ınıza datarows eklemeniz gerekir.

// Creates a new DataRow with the same schema as the table.
DataRow dr = dt.NewRow();

// Fill the values
dr["Name"] = "Name";
dr["Marks"] = "Marks";

// Add the row to the rows collection
dt.Rows.Add ( dr );

8

En kolay yol, şu andan itibaren bir DtaTable oluşturmaktır

DataTable table = new DataTable
{
    Columns = {
        "Name", // typeof(string) is implied
        {"Marks", typeof(int)}
    },
    TableName = "MarksTable" //optional
};
table.Rows.Add("ravi", 500);

4

Diğer cevaplara ek olarak.

DataTable'ın yapısını denetlerseniz, satır eklemek için bir kısayol vardır:

// Örneğinizde dt dt.Rows.Add ("Ad", "İşaretler") olarak tanımlanmış bir veri tablonuz olduğunu varsayalım;

DataRowCollection.Add () yöntemi, param dizisi nesnelerini alan bir aşırı yüklemeye sahiptir. Bu yöntem, gerektiği kadar çok değer iletmenize izin verir, ancak sütunların tabloda tanımlananlarla aynı sırada olmaları gerekir.

Bu nedenle, satır verileri eklemek için uygun bir yol olsa da, kullanmak riskli olabilir. Tablo yapısı değişirse kodunuz başarısız olur.


1

Soru 1: C # 'da DataTable nasıl oluşturulur?

Cevap 1:

DataTable dt = new DataTable(); // DataTable created

// Add columns in your DataTable
dt.Columns.Add("Name");
dt.Columns.Add("Marks");

Not: gerek yokturoluşturduktan sonra.Clear()DataTable

Soru 2: Satır (lar) nasıl eklenir?

Cevap 2: Bir satır ekleyin:

dt.Rows.Add("Ravi","500");

Birden çok satır ekleyin: ForEachdöngü kullanın

DataTable dt2 = (DataTable)Session["CartData"]; // This DataTable contains multiple records
foreach (DataRow dr in dt2.Rows)
{
    dt.Rows.Add(dr["Name"], dr["Marks"]);
}
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.