2009-05-10 5 views
0

У меня есть DataSet, который имеет 3 столбца.Как удалить столбец в DataSet и отдельных строках, чтобы найти только имена групп?

Name - insurance comp. name  -  treatmentDate 
Ali Boz  SGK       12.04.09 
Ali Boz  SGK       14.04.09 
Ali Boz  SGK       16.04.09 
Ali Boz  SGK       18.04.09 
Veli Aş  AKBANK       10.04.09 
Veli Aş  AKBANK       11.04.09 
Veli Aş  AKBANK       12.04.09 
Veli Aş  AKBANK       13.04.09 
Cuneyt Sel ING BANK      01.05.09 
Cuneyt Sel ING BANK      02.05.09 
Cuneyt Sel ING BANK      05.05.09 
Cuneyt Sel ING BANK      19.05.09 

Я хочу сначала найти только страховой компас. Имена

SGK 
AKBANK 
ING BANK 

Тогда я хочу, чтобы сортировать по имени и дате

Но все эти вещи в DataSet (потому что я хочу, чтобы retrive все строки из БД).

У вас есть совет ко мне?

+0

Какая версия C# вы используете? VS2008/C# 3? –

ответ

1

Если вы можете используйте LINQ, это даст вам названия страховой компании:

var Names = (from Row in YourDataSet.YourTable 
      select Row.InsuranceCompanyName).Distinct(); 

Вы также можете добавить .ToArray() или .ToList() или orderby в зависимости от ваших потребностей, при необходимости.

Если вы не можете использовать LINQ или изменить SQL-вызов, это more complicated.

+0

Да, вы правы. В то время как я ищу Linq To DataSet dll, я нашел это: «Пространство имен для LINQ теперь является System.Linq. System.Data.Extensions.dll заменено на System.Data.DataSetExtensions.dll. Кроме того, вместо ToQueryable, вы должны использовать AsEnumerable. " – uzay95

+0

Вы заработали? Если нет, можете ли вы обновить свой вопрос с ошибками и кодом? –

1

Не уверен, что именно ваш вопрос, но, чтобы получить имена страховой компании, вы можете просто выполнить следующее:

SELECT DISTINCT [insurance comp. name] 
FROM [tablename] 

Чтобы отсортировать все записи, как вы упомянули:

SELECT * 
FROM [tablename] 
ORDER BY [insurance comp. name], [name], [treatmentdate] 
0

Это довольно просто с помощью DataView.ToTable:

DataView view = new DataView(table); 
DataTable distinctTable = view.ToTable(true, "insurance comp. name");