我有一个数据行,但是如何将其转换为int?
我试过这个,但它不起作用。
dsMovie = (DataSet)wsMovie.getKlantId();
tabel = dsMovie.Tables["tbl_klanten"];
eersteRij = tabel.Rows[0];
(Int32.Parse(eersteRij.ToString())
答案 0 :(得分:12)
DataRow是一个对象;它不是整数。 DataRow包含一列或多列数据。您可以索引DataRow以访问这些coulmns的值。
如果表tbl_klanten
包含一列,并且该列是整数,则可以执行以下操作:
var myInt = (int)eersteRij[0];
如果列是包含整数值的字符串,
var myInt = int.Parse(eersteRij[0]);
如果列名为klant_id
...
var myInt = (int)eersteRij["klant_id"];
如果列是包含整数值的字符串,
var myInt = int.Parse(eersteRij["klant_id"]);
答案 1 :(得分:7)
只需使用Field方法:
int result = row.Field<int>("ColName");
The Field method also supports nullable types:
Field方法支持将列作为可空列进行访问 类型。如果DataSet中的基础值为Value,则返回 可空类型的值为null。
请注意:
Field方法不执行类型转换。如果需要类型转换,则应首先使用Field方法获取列值。然后应将列值转换为另一种类型。
答案 2 :(得分:2)
您需要知道所需对象所在的索引,并将其转换为int,例如:
int value = (int)eersteRij[0];
答案 3 :(得分:2)
因为即使在该级别的层次结构中,您仍然拥有DataRow,并且无法将DataRow转换为int ..但是可以转换值。
为什么要将整个DataRow转换为int ..通常你想在一行中获得一个值,所以试试,像这样:
int value = (int)eersteRij.Items[0];
其中0可以由单元格位置(int)或列名称(字符串)
替换答案 4 :(得分:0)
swapfile
答案 5 :(得分:0)
在遍历dataTable时,我倾向于使用IndexOf()
。
foreach (DataRow row in DataTable.table.Rows)
{
int index = dataTable.Rows.IndexOf(row);
}