2012-08-17 122 views
1

我正在根據訪問數據庫中的複選框(是/否)過濾Datagridview過濾。在Datagridview上過濾

我的代碼---------------------------------------

{ 
    OleDbConnection baglanti = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Burak YEŞİLYURT\Desktop\secret.accdb"); 
    OleDbCommand komutcu; 
    OleDbDataAdapter adpt; 
    DataSet ds; 
    public Form1() 
    { 
     InitializeComponent(); 
     baglanti.Open(); 
     komutcu = new OleDbCommand("SELECT * FROM todo", baglanti); 
     adpt = new OleDbDataAdapter(komutcu); 
     ds = new DataSet(); 
     adpt.Fill(ds); 
     dataGridView1.DataSource = ds.Tables[0]; 
     adpt.RowUpdated += adpt_RowUpdated; 
     this.dataGridView1.Columns["id"].Visible = false; 
     this.dataGridView1.Columns["zaman"].Visible = false; 


     this.dataGridView1.Columns["todo"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; 
    } 

    private void Form1_Load(object sender, EventArgs e) 
    { 

     baglanti.Open(); 
     komutcu = new OleDbCommand("SELECT * FROM todo", baglanti); 
     adpt = new OleDbDataAdapter(komutcu); 
     ds = new DataSet(); 
     adpt.Fill(ds); 
     dataGridView1.DataSource = ds.Tables[0]; 




    } 
    public void adpt_RowUpdated(object sender, OleDbRowUpdatedEventArgs e) 
    { 
     if (e.RecordsAffected == 0) 
     { 
      e.Row.RowError = "Tutarlılık ihlali: UpdateCommand, beklenen 1 kaydın 0 kaydını etkiledi."; 

      // Hatalı satır üzerinde işlem yapılmadan es geçiliyor. 
      e.Status = UpdateStatus.SkipCurrentRow; 
     } 
    } 

    private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e) 
    { 
     OleDbCommandBuilder komut = new OleDbCommandBuilder(adpt); 
     DataSet yeni = new DataSet(); 
     yeni = ds.GetChanges(DataRowState.Modified | DataRowState.Added); 

     adpt.Update(yeni.Tables[0]); 
    } 

    private void only_cntr_CheckStateChanged(object sender, EventArgs e) 
    { 
     ds.Tables["todo"].DefaultView.RowFilter = "state = 'true'"; //// Error this line 
    } 

當我debbug我收到此錯誤「對象引用未設置爲對象的實例。」 我失蹤的地方?任何幫助,我會很高興。謝謝

+0

什麼是你的InitializeComponent();方法呢?看起來你在Form()構造函數和Form1_Load事件方法中都有重複的代碼。 – chridam 2012-08-17 10:07:15

+0

這可能有助於http://www.vbdotnetforums.com/database-general-discussion/24125-problem-defaultview-rowfilter.html#post73015 – Truezplaya 2012-08-17 10:36:19

回答

0

當然你的意思是"state = true""state =-1"布爾值不能設置爲文本值。