我有一個數據表,有些列是字符串,有些是十進制的。當我添加一行時,它會自動轉換信息還是必須自己轉換它們?我有很多數據,我需要在一個表中添加,目前我使用此:將行添加到數據表#2
DataRow row = dataTable.NewRow();
row["item1"] = Info[0];
row["Item2"] = Info[1];
row["item3"] = Info[2];
row["Item4"] = Convert.ToDecimal(Info[3]);
我有一個數據表,有些列是字符串,有些是十進制的。當我添加一行時,它會自動轉換信息還是必須自己轉換它們?我有很多數據,我需要在一個表中添加,目前我使用此:將行添加到數據表#2
DataRow row = dataTable.NewRow();
row["item1"] = Info[0];
row["Item2"] = Info[1];
row["item3"] = Info[2];
row["Item4"] = Convert.ToDecimal(Info[3]);
行[「...」]是一個對象,將採取任何類型。如果你的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
}
檢查文檔:Datatable Addrow
如果你的數據表沒有類型的,是的,你必須將數據轉換到預期的類型,在鍵入數據表的情況下它會轉換數據,如:
int number = "0";
您還可以設置列類型。
亞歷克斯·門德斯請看看這個鏈接: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
}
什麼是信息的類型? – 2012-02-15 12:57:42