2012-06-01 3 views
-2

У меня есть форма, которая представляет собой 1 просмотр списка и текстовое поле.
* просмотр списка имеет в общей сложности 100 строк данных
* Просмотр списка имеет 5 столбцов
* колонок 3 имеет только два возможные слова yes или noкак подсчитать конкретное слово в столбце списка

Я хочу, чтобы подсчитать количество встречаемости слова yes в колонке 3

общая строка может быть подсчет с этим кодом:

''''''''''COUNT TOTAL ADMISSION'''''''''''''' 

Dim rowcount As Integer = 0 

For Each item As ListViewItem In LVfeestatementBA_I.Items 
    rowcount = CInt(item.SubItems(0).Text) 'Considering every column always have some value 
Next 

txttotaladBA_I.Text = rowcount.ToString() 

любая помощь будет greatfull

EDIT 1

Это назначение школы. Как я уже сказал, моя цель - узнать количество появления слова в столбце 3. У меня есть база данных доступа к MS, которая связана с кодом и предоставляет данные для представления списка. В списке есть 5 столбцов и всего 100 строк. Данные в col-3 содержат только три слова: gen, occ и cc. Теперь в хочу рассчитывать кол-3 для слов с кодом и показать номер, как (68) в textbox1

EDIT 2

Я применил функцию, представленную thedarkspoon, но это не показывает результат. Я просто хочу, чтобы результат был показан в textbox1, например. если общее количество слов 78, то на момент form_load он должен показать 78 в textbox1. Я решил эту проблему, добавив в последней textbox1.text = numofyes и изменения переменной от integer к string теперь его работает

+1

Приятно просить о помощи здесь, но вам будет легко скрыть людей, чтобы срочно решить вашу проблему, поскольку это бесплатный сайт. –

ответ

1

Я не совсем понял ваш сценарий (вы должны быть более ясным).

Во всяком случае, учитывая ListView, который отображает элементы, каждый из которых имеет 3 подразделов и мы знаем, что третья подпозиция будет иметь значение либо «да» или «нет», мы можем построить запрос типа (с использованием LINQ):

 var collectionOfListViewItems = listView1.Items.Cast<ListViewItem>(); 
    var numberOfrowsWithTheThirdSubItemTextEqualToYes = (from c in collectionOfListViewItems where c.SubItems[3].Text == "yes" select c).Count();   

Без LINQ вы могли бы сделать Еогеасп:

 var numberOfrowsWithTheThirdSubItemTextEqualToYes = 0; 
    foreach (ListViewItem item in listView1.Items) 
    { 
     if (item.SubItems[3].Text == "yes") 
      numberOfrowsWithTheThirdSubItemTextEqualToYes++; 
    } 
+0

Спасибо за ваш ответ Ando, ​​проблема еще не решена –

+0

спасибо за ваш ответ Ando, ​​извините за то, что не очистил мою точку, потому что я совершенно новый, чтобы использовать визуальный базовый 2010 и пытаюсь сделать прог. 4 моя проблема с school.the еще не решена, так как я сказал, что моя цель - найти d число появления слова в столбце 3. У меня есть база данных ms-доступа, которая связана с кодом. теперь, откуда данные отображаются в виде списка. list list имеет всего 5 столбцов) общая строка 100 с данными col-3 содержит только три слова «gen», «occ» и «cc», которые теперь хотят подсчитать col-3 для слов с кодом и показать количество понравившихся (68) в текстовом поле1.пожалуйста, решите мою проблему thanx agian –

+0

, пожалуйста, решите мою проблему со своим аргентином («_») –

1

Ok здесь вы идете, я сделал эту функцию, но вы можете легко адаптировать это к подпрограмме:

Function countyes() 
    'Set up a variable to count the number of yes: 
    Dim numofyes As Integer = 0 
    'Count the number of yes (Replace listview1 with the name of your listview): 
    For Each item As ListViewItem In ListView1.Items 
     'If the Yes/No is in column 3, you are looking in subitem 2: 
     If item.SubItems(2).Text = "Yes" Then 
      'Increment the variable by one if the value is yes: 
      numofyes = numofyes + 1 
     End If 
    Next 
    'Return our total number of Yes that we found: 
    Return numofyes 
End Function 

Надеюсь, это поможет!

+0

спасибо за ответ, я применяю функцию, но не показываю результат. Если вы видите вопрос, я просто хочу, чтобы результат должен отображаться в текстовом поле1, что если общее число слов равно 78, то во время form_load он должен показать результат в текстовом поле .1.i также применит вашу функцию, если допустимо для подсчета других слов. любезно помогите мне –

+0

Рад, что все работает! И, конечно, вы можете использовать его для подсчета других слов, просто замените слово «Да» в инструкции «если» словом, которое вы хотите подсчитать. Рад, что я мог бы помочь :) – thedarkspoon

+0

hi thedarkspoon, можно также помочь в этом, см. Код: Dim numofgeneral As String = 0 Для каждого элемента As ListViewItem В LVfeestatementBA_I.Items Если item.SubItems (3) .Text = " GENERAL»и item.SubItems (4) .Text = "MALE" Тогда «Увеличиваем переменную на единицу, если значение да: numofgeneral = numofgeneral + 1 End If Next txtgencategoryBA_I.Text = numofgeneral «это давая мне ошибку «Преобразование из строки« MALE », чтобы напечатать« Boolean », недействительно» помощь для этого спасибо заранее –

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