我重複使用數據表中的行 -使用列名稱從列中獲取數據?
DataTable dt = getDataTableFromSomeWhere();
DataRow row = null;
//for loop
row = dt.Rows[i];
我如何獲得第i行的列的值,通過使用列的名字嗎? 我可以迭代使用dt.Columns [j]的列,但那不是我想要的。
我重複使用數據表中的行 -使用列名稱從列中獲取數據?
DataTable dt = getDataTableFromSomeWhere();
DataRow row = null;
//for loop
row = dt.Rows[i];
我如何獲得第i行的列的值,通過使用列的名字嗎? 我可以迭代使用dt.Columns [j]的列,但那不是我想要的。
只需使用indexer taking a string parameter:
object value = row["ColumnName"];
編輯:假設值在適當的類型已被提取,我通常只投給你想要的CLR類型:
int someIntegerValue = (int) row["ColumnName"];
有時您可能需要兩個級別的投射(一個用於取消裝箱,然後另一個用於執行實際值轉換),但這取決於您需要的內容。
我會推薦反對轉換爲字符串表示,然後解析,除非你真的沒有別的選擇。過多的字符串轉換不僅會影響性能(通常不相關),而且會導致選擇不當的類型。
string name = (string) row["ColumnName"];
或
int i = Convert.ToInt32(row["ColumnName"]);
按名稱引用是稍微有點慢,但這樣更具可讀性。
如果插入或重新排列列,按名稱索引也更安全。 –
然後使用value.ToString()來獲取對象所包含的值? – Steam
@blasto:嗯,我通常只會投... –
順便說一句,我忘了問,如果給定的列名不存在會發生什麼? – Steam