2012-09-14 5 views
2

Я хочу значений фильтра из набора данных. Он содержит номера телефонов , начиная с нулевых и ненулевых значений. Как я могу отфильтровать номер телефона (начинать с нуля без нуля) из набора данных. Ниже приведен код vb.net и полученная ошибка.Фильтровать записи из набора данных в vb.net

cmd = New OracleCommand("select PHONE from reports.renewal_contact_t where run_date=to_date('" + TextBox1.Text + "','mm/dd/yyyy') and EXP_DATE =to_date('" + TextBox2.Text + "','mm/dd/yyyy') and region not in('TNP')", cn) 
ada = New OracleDataAdapter(cmd) 
ada.Fill(ds, "reports.renewal_contact_t ") 
Dim ds1 As New DataSet 
ds1.Tables("reports.renewal_contact_t").DefaultView.RowFilter = "PHONE NOT like'0'" 

Ошибка: Ссылка на объект не указывает на экземпляр объекта. ошибка в строке строки фильтра

ответ

2

В вашем ds1 есть нет таблицы * reports.renewal_contact_t *. Измените его на

cmd = New OracleCommand("select PHONE from reports.renewal_contact_t where run_date=to_date('" + TextBox1.Text + "','mm/dd/yyyy') and EXP_DATE =to_date('" + TextBox2.Text + "','mm/dd/yyyy') and region not in('TNP')", cn) 
ada = New OracleDataAdapter(cmd) 
ada.Fill(ds, "reports.renewal_contact_t") 
' no need for a new dataset - as you fill ds (and not ds1)!! 
ds.Tables("reports.renewal_contact_t").DefaultView.RowFilter = "PHONE NOT like'0'" 
0

Это будет работать против набора данных с «схемы», аналогичной

** Пример данных> *

Id Value 

1 303-888-8888 
2 0-418-895-9598 

TryCast(filteredDS.Tables(0).Rows.Cast(Of DataRow).Where(Function(row) Not row.ItemArray(1).ToString().Substring(0, 1).Equals("0")), IEnumerable(Of DataRow)).ToList().ForEach(Sub(row) row.Delete()) 

--removes любую запись, в которой телефон начинается с ничего, кроме нуля