2012-02-15 7 views
4

У меня есть таблица данных, а некоторые столбцы - это строки, некоторые из которых являются десятичными. Когда я добавлю строку, она автоматически преобразует информацию или мне нужно ее самостоятельно преобразовать? У меня есть много данных, что мне нужно добавить в таблицу и в настоящее время я использую это:Добавление строк в datatable # 2

DataRow row = dataTable.NewRow(); 
row["item1"] = Info[0]; 
row["Item2"] = Info[1]; 
row["item3"] = Info[2]; 
row["Item4"] = Convert.ToDecimal(Info[3]); 
+0

Какой тип информации? –

ответ

1

ряд ["..."] является объектом и будет принимать любые типы. Если ваша Info [n] - это строка, вы можете преобразовать ее в нужный тип, если это необходимо. Я не знаю, если информация представляет собой набор или нет, но если это так, то почему бы не сделать что-то вроде этого, вместо:

List<Info> infoList = new List<Info>(); 
infoList.Add(...); //Add item here. 

foreach(Info info in infoList) 
{ 
    DataRow row = dataTable.NewRow(); 
    row["item1"] = info.Item1; //where Item1 could be a string 
    row["Item2"] = info.Item2; //where Item2 could be an int 
    row["item3"] = info.Item3; //Where Item3 could be a DateTime 
    row["Item4"] = info.Item4; //Where Item4 could be a Decimal 
} 
0

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

int number = "0"; 

Вы также можете установить типы столбцов.

1

Alex Mendez, пожалуйста, посмотрите на эту ссылку: http://msdn.microsoft.com/en-us/library/system.data.datatable.newrow.aspx, я думаю, что вам не хватает указанная строка кода (см. ниже):

foreach(Info info in infoList) 
{ 
    DataRow row = dataTable.NewRow(); 
    row["item1"] = info.Item1; //where Item1 could be a string 
    row["Item2"] = info.Item2; //where Item2 could be an int 
    row["item3"] = info.Item3; //Where Item3 could be a DateTime 
    row["Item4"] = info.Item4; //Where Item4 could be a Decimal 
    dataTable.Rows.Add(row); //<-- You need to add this line to actually save the value to the Data Table 
} 
Смежные вопросы