записать данные в DataRow в DataTable с C # - PullRequest
0 голосов
/ 02 мая 2018

У меня есть DataTables с электронными письмами. Над LDAP у меня есть Userdata. Теперь я хочу увеличить DataTable в зависимости от адреса электронной почты.

myDataTable.Columns.Add(new DataColumn("LDAP_Data"));

foreach(DataRow row in modiTable.Rows)
{
    string myLDAPData = DoLDAPAction(row.Field<string>("EMAIL"));

    //how to insert to myDataTable > LDAP_Data
}

как мне вставить новые данные из LDAP в новый столбец?

Спасибо

Ответы [ 3 ]

0 голосов
/ 02 мая 2018
myDataTable.Columns.Add(new DataColumn("LDAP_Data"));

foreach(DataRow row in modiTable.Rows)
{
    string myLDAPData = DoLDAPAction(row.Field<string>("EMAIL"));

    var row = myDataTable.NewRow()
    row["LDAP_Data"] = YOUR_DATA;
    myDataTable.Rows.Add(row);
}
0 голосов
/ 02 мая 2018

Вы можете сделать это, используя метод NewRow :

foreach(DataRow row in modiTable.Rows)
{
    string myLDAPData = DoLDAPAction(row.Field<string>("EMAIL"));

    DataRow row = modiTable.NewRow();
    row["EMAIL"] = myLDAPData;
    //You might want to specify other values as well
}

Или вы можете использовать метод Add () , как предложено в ответе Кара.

0 голосов
/ 02 мая 2018

Если вы добавляете строку к DataTable, вы должны добавить строку, столбцы которой соответствуют вашей таблице. Вот почему вы вернетесь к ряду, если позвоните DataTable.Add().

Вот пример того, как добавить новые строки:

static void Main(string[] args)
{
    DataTable dt = new DataTable(); // Create a example-DataTable
    dt.Columns.Add(new DataColumn() { ColumnName = "Name", DataType = typeof(string) }); // Add some columns
    dt.Columns.Add(new DataColumn() { ColumnName = "Id", DataType = typeof(int) });

    // Let's fill the table with some rows
    for (int i = 0; i < 20; i++) // Add 20 Rows
    {
        DataRow row = dt.Rows.Add(); // Generate a row
        row["Id"] = i; // Fill in some data to the row. We can access the columns which we added.
        row["Name"] = i.ToString();
    }

    // Let's see what we got.
    for (int i = 0; i < dt.Columns.Count; i++) // Loop through all columns
    {
        Console.Write(dt.Columns[i].ColumnName + ";"); // Write the ColunName to the console with a ';' a seperator.
    }
    Console.WriteLine();

    foreach (DataRow r in dt.Rows) // Generic looping through DataTable
    {
        for (int i = 0; i < dt.Columns.Count; i++) // Loop through all columns
        {
            Console.Write(r[i] + ";");
        }
        Console.WriteLine();
    }

}
...