Судя по вашим последним комментариям, вы хотите получить все строки в таблице, а затем иметь возможность выбрать данную строку на основе столбца Имя.
DataTable лучше всего подойдет, если вашей программе потребуется доступ к различным строкам в разное время - пока DataTable находится в памяти / кэшируется, вы можете получить значение для любого имени в любое время.
Если вам просто нужно сделать это один раз, SqlDataReader, вероятно, будет быстрее, но только для пересылки.
Пример DataTable:
Предполагая, что вы уже заполнилиDataTable (имя name в примере), вы можете использовать метод Select:
DataRow[] selectedRows = info.Select("Name = 'Server'");
string serverIP = selectedRows[0]["Value"].ToString();
Пример DateReader:
На основе кода @ Kobe просто проверяйте Name каждый раз, когда вы переходите кследующая запись, а затем вытащите значение:
bool valueFound = false;
while (reader.Read() && !valueFound)
{
if (reader["Name"].ToString() == "Server")
{
serverIP = reader["Value"].ToString();
valueFound = true;
}
}
Есть несколько предостережений, о которых нужно знать.Во-первых, метод Select объекта DataTable возвращает массив DataRow, поэтому, если в столбце «Имя» более чем у одной записи есть «Сервер», вы получите несколько результатов.Если это так, то все в порядке - просто переберите массив DataRows.
Во-вторых, если в таблице много строк или есть потенциал в будущем, читатель может работать медленнее в зависимостио том, где интересующая запись находится в таблице.И если вы имеете дело с возможностью того, что несколько записей в таблице будут соответствовать критериям имени, возможно, проще всего придерживаться DataTable.