it-swarm.asia

كيفية إضافة DataRow جديدة إلى DataTable؟

لدي DataGridView مرتبط بـ DataTable (DataTable مرتبط بقاعدة البيانات). أحتاج إلى إضافة DataRow إلى DataTable. أحاول استخدام الكود التالي:

dataGridViewPersons.BindingContext[table].EndCurrentEdit();
DataRow row = table.NewRow();

for (int i = 0; i < 28; i++)
{
    row[i] = i.ToString();
}

لكنه لا يعمل ، DataGridView لم تتم إضافة صف جديد أبدًا. من فضلك ، أخبرني ، كيف يمكنني إصلاح الكود الخاص بي؟

شكرا لكم مقدما.

35
malcoauri

يمكنك أن تجرب باستخدام هذا الكود - على أساس Rows.Add method

DataTable table = new DataTable();
DataRow row = table.NewRow();
table.Rows.Add(row);

الرابط: https://msdn.Microsoft.com/en-us/library/9yfsd47w.aspx

53
Aghilas Yakoub

لقد وجدت أمثلة dotnetperls على DataRow مفيدة للغاية. مقتطف الشفرة الجديد DataTable من هناك:

static DataTable GetTable()
{
    // Here we create a DataTable with four columns.
    DataTable table = new DataTable();
    table.Columns.Add("Weight", typeof(int));
    table.Columns.Add("Name", typeof(string));
    table.Columns.Add("Breed", typeof(string));
    table.Columns.Add("Date", typeof(DateTime));

    // Here we add five DataRows.
    table.Rows.Add(57, "Koko", "Shar Pei", DateTime.Now);
    table.Rows.Add(130, "Fido", "Bullmastiff", DateTime.Now);
    table.Rows.Add(92, "Alex", "Anatolian Shepherd Dog", DateTime.Now);
    table.Rows.Add(25, "Charles", "Cavalier King Charles Spaniel", DateTime.Now);
    table.Rows.Add(7, "Candy", "Yorkshire Terrier", DateTime.Now);

    return table;
}
15
mimo

// َ إنشاء صف جديد بهيكل الجدول:

DataTable table = new DataTable();
DataRow row = table.NewRow();
table.Rows.Add(row);

// إعطاء القيم إلى أعمدة الصف (من المفترض أن يحتوي هذا الصف على 28 عمودًا):

for (int i = 0; i < 28; i++)
{
    row[i] = i.ToString();
}
10
Mehran Sarrafi

يجب عليك أضف الصف بشكل صريح إلى الجدول

table.Rows.Add(row);
3
rene

إذا دعت الحاجة للنسخ من جدول آخر ، فعليك نسخ الهيكل أولاً:

DataTable copyDt = existentDt.Clone();
copyDt.ImportRow(existentDt.Rows[0]);
2
Aleksey Kontsevich

هذا يعمل لي:

var table = new DataTable();
table.Rows.Add();
1
x-silencer

حاول table.Rows.add(row); بعد بيان for.

0
Riccardo