Как добавить значения в конце DataTable? - PullRequest
0 голосов
/ 01 декабря 2011

Я получаю некоторые данные в неструктурированной форме. Поэтому я хочу, чтобы это было в структурированном виде. Итак, я беру данные в этом, я добавил два столбца, то есть «поле» и «значение». Теперь я добавил первую строку в данных вместе с данными в этих двух столбцах. Но проблема в том, что он заменяет старые данные каждый раз, когда я снова прихожу, чтобы сохранить данные в этой таблице данных. Мой код:

     DataTable dt = new DataTable();
            dt.Columns.Add("Field", typeof(string));
            dt.Columns.Add("Value", typeof(string));
            dt.Rows.Add(val.Substring(0, val.IndexOf(":") + 1), val.Substring(val.IndexOf(":") + 1, val.Length - val.IndexOf(":") - 1))

Ответы [ 2 ]

1 голос
/ 01 декабря 2011

Используя DataTable, вы должны создать новую строку перед ее добавлением:

DataTable dt = new DataTable();
dt.Columns.Add("Field", typeof(string));
dt.Columns.Add("Value", typeof(string));

var row = dt.NewRow();
dt["Field"] = "FieldName";
dt["Value"] = "Value";
dt.Rows.Add(row);

NewRow () документация :

Вы должны использоватьМетод NewRow для создания новых объектов DataRow с той же схемой, что и в DataTable.После создания DataRow вы можете добавить его в DataRowCollection с помощью свойства Rows объекта DataTable.Когда вы используете NewRow для создания новых строк, строки должны быть добавлены или удалены из таблицы данных перед вызовом Clear.

Но если вы обрабатываете только пару ключ / значение, почему бы не 'Вы используете Dictionary<string, string>?

0 голосов
/ 01 декабря 2011

Вы используете это в цикле? в цикле должна быть только последняя строка, в противном случае вы создаете экземпляр каждого цикла с датой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...