Вопрос:

Конвертировать datarow в int

c# int datarow

38707 просмотра

5 ответа

26 Репутация автора

У меня есть datarow, но как я могу преобразовать его в int?

Я пробовал это, но это не работает.

dsMovie = (DataSet)wsMovie.getKlantId();
            tabel = dsMovie.Tables["tbl_klanten"];
            eersteRij = tabel.Rows[0];
(Int32.Parse(eersteRij.ToString())
Автор: Steaphann Источник Размещён: 02.03.2011 02:13

Ответы (5)


2 плюса

53742 Репутация автора

Вам нужно знать, на какой индекс идет объект, который вы хотите, и привести его к типу int, например:

int value = (int)eersteRij[0];
Автор: Femaref Размещён: 02.03.2011 02:16

2 плюса

14627 Репутация автора

Потому что даже на этом уровне иерархии у вас все еще есть DataRow, и вы не можете преобразовать DataRow в int .. хотя значение может быть преобразовано.

И почему вы конвертируете весь DataRow в int .. обычно вы хотите получить значение в ячейке подряд, поэтому попробуйте что-то вроде этого:

int value = (int)eersteRij.Items[0];

где 0 можно заменить позицией ячейки (int) или именем столбца (строка)

Автор: Shekhar_Pro Размещён: 02.03.2011 02:17

12 плюса

111782 Репутация автора

DataRow - это объект; это не целое число. DataRow содержит один или несколько столбцов данных. Вы можете индексировать в DataRow для доступа к значениям этих столбцов.

Если таблица 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"]);
Автор: Will Размещён: 02.03.2011 02:18

7 плюса

1501 Репутация автора

Просто используйте метод Field:

int result = row.Field<int>("ColName");

Метод Field также поддерживает обнуляемые типы :

Метод Field обеспечивает поддержку доступа к столбцам как обнуляемым типам. Если базовым значением в DataSet является Value, возвращаемый обнуляемый тип будет иметь значение null.

И, пожалуйста, обратите внимание:

Метод Field не выполняет преобразования типов. Если требуется преобразование типа, сначала необходимо получить значение столбца с помощью метода Field. Затем значение столбца должно быть преобразовано в другой тип.

Автор: Naser Yousefi Размещён: 08.11.2016 08:32

0 плюса

1947 Репутация автора

DataSet dataSet = getDataFromDatabase();
DataRow tableRow = dataSet.Tables[0].Rows[0];

int valueAsInteger = Convert.ToInt32(tableRow["COLUMN_NAME"]);
Автор: Gil Epshtain Размещён: 12.02.2019 05:27
32x32