web-dev-qa-db-ja.com

新しいDataRowをDataTableに追加する方法は?

DataGridViewDataTableにバインドしています(DataTableがデータベースにバインドされています)。 DataRowDataTableに追加する必要があります。私は次のコードを使用しようとしています:

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

DataRowのdotnetperlsの例 が非常に役立ちました。そこから新しい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

これは私のために働く:

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

forステートメントの後にtable.Rows.add(row);を試してください。

0
Riccardo