2009-07-28 2 views
0

人が「検索」をクリックしたときに検索基準に基づいて顧客を満たすデータグリッドビューをC#に用意しました。私が抱えている問題は、ユーザーが検索ボタンを2回以上クリックして顧客を検索した場合、またはユーザーが別の検索を実行したい場合、最後の検索のすべての詳細がまだデータグリッドビューにあることです。今の大きな問題は、列が削除されていないか、追加が追加されているのではなく、複数回検索された後に、datagridview内のボタンの列インデックスが「0」になることです。DataGridViewを空にする

ここで問題を把握したので、今後誰かが細部を見てみたいと思っている場合に備えて、ここで詳しく説明します。この問題は、custDataGridView.DataSource = nullを削除したときのようでした。いくつかのあいまいさがあるように見えたとして一部、すべてが

を動作するように見え、ここでコードがいっぱいである:あなたの忍耐のため

 DataGridViewButtonColumn custAddJobSelect = new DataGridViewButtonColumn(); 
     Datatable dt = new Datatable(); 
     // ---> This was the culprit ---> custDataGridView.DataSource = null; 
     dt.Rows.Clear(); 

     #region SQL connection String 
     ...//CustQuery is the SQL stuff, conn is connection to DB. 
     #endregion 

     da = new System.Data.SqlClient.SqlDataAdapter(CustQuery, conn); 
     da.Fill(dt); 

     conn.Close(); 

     custDataGridView.DataSource = dt; 


     if (AddJobGone == false) 
     { 

      AddJobGone = true; 
      custAddJobSelect.DisplayIndex = 0; 
      custDataGridView.Columns.Add(custAddJobSelect); 
     } 

     private void custDataGridView_CellContentClick(object sender, DataGridViewCellEventArgs e) 
    { 
     if (e.ColumnIndex == this.custDataGridView.Columns.Count - 1) 
     { 
      string addJobsCustNo = custDataGridView.Rows[e.RowIndex].Cells[0].FormattedValue.ToString(); 
      txtAddJobsCustNo.Text = addJobsCustNo; 
      pnlAddJobSearchCustomer.Visible = false; 
     } 
    } 

おかげで、これは他の誰かに役立ちます願っています!

答えて

0

質問は、に問題があるように見えた:あなたは他の提案を行ってください作ることができれば

custDataGridView.DataSource = null; 

は、完全なコードについて見てみましょう:)

1

DataSourceをnullに設定すると、新しい検索を試みるときに特定のコードセットがヒットしていることを確認してください。たとえば、オブジェクトを独自のプロシージャに接続し、検索の開始時にプロシージャをコールして、オブジェクトが確実にクリアされるようにします。確かに、あなたの検索ボタンが押されるたびにDataSourceをクリアしない理由がない限り、そのコードセクションを取り囲む条件付きロジックを持つことはおそらくありません。

0

データソースは正確には何ですか?それはDataTable、オブジェクト/エンティティのリストですか、またはDataGridViewに手動で行を追加しますか?

データソースがDataTableまたはリストの場合は、DataGridViewにフォーカスするのではなく、新しい検索結果を追加する前にリストからすべてのアイテムを削除していることを確認する必要があります自体。

私はあなたがここで、(dataGridView1.Rows.Add)手動で行を追加していると思います私はあなたの現在のDataSource = nullソリューションが動作しないことを仮定している、これは明白な説明:)

0

だろうデータソースをヌルに設定した場合は何もしません。今答え

関連する問題