Member 13366575 Ответов: 2

Как получить значение datarow из datatable в C#


привет

у меня есть datatable, который содержит некоторую запись. столбец datatable-это (ID,имя,контакт)
Теперь я хотел найти имя и контакт, предоставив удостоверение личности.


предположим, выберите имя , контакт, где ID = 1.

Что я уже пробовал:

здесь я нашел строку данных этого datatable. как показано ниже

DataRow[] dr = dt.Select("ID= 1");


но как получить имя и контактный номер телефона из Datarow[]

2 Ответов

Рейтинг:
1

BillWoodruff

DataRow[] dr = dt.Select("ID= 1");

foreach(DataRow row in dr)
{
    var name = row["NAME"].ToString();
    var contact = row["CONTACT"].ToString();
}
Используя метод расширения поля в System.Data, мы можем упростить приведение значений столбцов из объекта в их собственный тип:
DataRow[] dr = dt.Select("ID= 1");

foreach(DataRow row in dr)
{
    string name = row.Field<string>("NAME");
    string contact = row.Field<string>("CONTACT");
}
Вам действительно нужно ознакомиться с "основами" использования DataTable: [^], [^].


Karthik_Mahalingam

5

Рейтинг:
1

Atlapure Ambrish

Учитывая, что ID уникален, вы всегда получите одну строку, так что вам действительно не нужно петлять :), просто используйте массив datarow с индексом 0, чтобы получить имя и контакт, как показано ниже.

DataRow[] dr = dt.Select("ID= 1");
var name = dr[0]["NAME"].ToString();
var contact = dr[0]["CONTACT"].ToString();


BillWoodruff

"Учитывая, что ID уникален", что заставляет вас быть в этом уверенным ?

Atlapure Ambrish

В идеале, базы данных спроектированы таким образом.. :)

Richard Deeming

Если идентификатор не существует в таблице, вы получите IndexOutOfRangeException. Вам нужно проверить Length возвращаемого массива перед попыткой доступа к первому элементу.

Atlapure Ambrish

Мой брат, я бы оставил защитную часть кодирования автору :)

Member 11203491

Большое вам спасибо, что решение 2 работает как заклинание.