2012-11-15 103 views

回答

1
int i = Convert.ToInt32(dt.Rows[0]["field_name"]); 
+0

感謝@huMpty格式化:) – LittleSweetSeas

+0

請注意,在其他答案中,您將通過將對象轉換爲字符串,然後將字符串解析爲int來增加一點開銷。 – LittleSweetSeas

+0

有趣的是,該字段是一個整數,所以爲什麼要轉換? – TeaDrinkingGeek

0

試試這個: -

tbEvent.Text = dt.Rows[0].Field<Int>(0).ToString(); 

我是assumin g您嘗試將值傳遞給文本框。

0

使用強類型訪問!

如果你的類型是int

string g = dt.Rows[0].Field<String>(0); 

會失敗!

無法投類型「System.Int32」的對象爲類型「System.String」

但是,如果你知道它的int和你要顯示的字符串represenation:(或只是toString()方法)

string t= dt.Rows[0].Field<int>(0).ToString(); 

或者只是:dt.Rows[0][0].ToString();

0

Field擴展方法不適合轉換的類型。它只是模擬一個強類型的DataTable。所以,如果你知道的DataColumn的類型是int它的工作原理是這樣的:

int result = dt.Rows[0].Field<int>(0); 

但是如果它實際上際,你需要轉換string /據此解析它。

例如:

int result = int.Parse(dt.Rows[0].Field<String>(0)); 

或更鬆散類型指標(如,因爲它是一個double或者你不知道它是什麼)

int result = int.Parse(dt.Rows[0][0].ToString()); 
+0

我嘗試了你的第一個陳述Tim。我在Int下得到一個紅色下劃線。找不到您錯過了一個指令或裝配? – TeaDrinkingGeek

+0

@TeaDrinkingGeek:編輯。當然這個類型被稱爲'int'而不是'Int'。但第一個陳述是你已經嘗試過的。我只是試圖解釋爲什麼它不起作用,什麼時候起作用。 –

+0

蒂姆,任何指針在哪裏瞭解更多關於這個話題? – TeaDrinkingGeek