2012-08-17 66 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"布尔值不能设置为文本值。