2012-06-08 5 views
1

Я делаю прогресс в этой базе данных для доступа ... Вот что мне нужно сделать: У меня есть существующий DataSet (и, следовательно, DataTable), который определен в пространство имен классов, и я пытаюсь сделать функцию, которая позволяет пользователю выбирать из списка элементов и использовать SelectedItem.Value (который содержит уникальный первичный ключ из базы данных), чтобы отобразить дополнительную информацию об элементе, который выбран. Я считаю, что мне нужно искать через DataSet и читать его во что-то вроде DataRow, чтобы я мог отображать значения из этого (есть способ сделать это на основе имени столбца, правильно?)Создание DataRow из поиска в DataTable/DataSet

Я просто могу ' т выяснить, как сказать, «копировать/выберите строку, чью первичный ключ„PARTNUMBER“равно SelectedItem.Value»

+0

Вы смотрели на 'DataTable.Select()' : http://msdn.microsoft.com/en-us/library/h71xae h0.aspx – CodingGorilla

+0

У меня есть 'DataRow [] myRows = queryTable.Select (" productsid = '"+ selectionList.SelectedItem.Value +"' ");' , но он возвращает сообщение об ошибке, не могу найти столбец [prodcutsid] хотя это явно одно из имен столбцов (если в этом случае оно не чувствительно к регистру) –

ответ

2

есть три распространенного метод

  1. Использование DataRowCollection.Find может быть использовано только если столбец был определяемый как первичный ключ

    var row = table.Rows.Find(SelectedItem.Value) 
    
  2. Использование DataTable.Select(String), который использует фильтр как струна

    var rows = table.Select("IdFieldSelectedItem.Value = " + SelectedItem.Value); 
    var row = rows[0]; 
    
  3. Использование Linq to Dataset

    var row = (from t in table.AsEnumerable() 
          where t.Field<int>("Id") == SelectedItem.Value 
          select t).First(); 
    
+0

+1 для Linq to Dataset – CodingGorilla

+0

@Conrad Frix Хорошо, поэтому я правильно использовал метод Select. Однако, похоже, что у моего DataSet нет данных. Любые идеи почему? У меня есть 'public partial class Default: System.Web.UI.Page {DataSet queryData = new DataSet(); DataTable queryTable = new DataTable(); 'Затем в обработчике событий кнопки я запрашиваю базу данных (на самом деле веб-службу), например: ' protected void updateTable (oject sender, EventArgs e) { queryData = pws.Query .. .//web метод обслуживания queryTable = queryData.Tables ["parts"]} ' Тогда эта функция ' protected void updateData (отправитель объекта, EventArgs e) {// как показано в вашем ответе} ' –

+0

Когда вы звоните '.Select()' это также из обработчика кнопок, который заполняет набор данных? –

Смежные вопросы