2012-11-15 68 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