4

データセットから値をフィルタリングしたい。ゼロおよびゼロ以外の値で始まる電話番号が含まれています。データセットから電話番号 (ゼロ以外の番号で始まる) をフィルタリングするにはどうすればよいですか。以下は、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'"

エラー:オブジェクト参照がオブジェクトのインスタンスに設定されていません。行フィルター行のエラー

4

2 に答える 2

3

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'"
于 2012-09-14T06:27:58.257 に答える
1

これは、次のような「スキーマ」を持つデータセットに対して機能します

**データ例>*

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())

-- 電話番号がゼロ以外で始まるすべてのレコードを削除します

于 2013-03-14T19:08:34.763 に答える