2017-01-30 13 views
0

enter image description hereこんにちは私は顧客の詳細を表示するメインフォームを持っています。特定の顧客を検索するための別のフォームを作成しました。 doubleclickイベントでは、データがメインフォームのテキストボックスに読み込まれ、閉じることができます。私はこのウェブサイトからいくつかのことを試みましたが、運がなかったのです。c#datagridview doubleclick別のフォームにデータをロード

メインフォームにこの関数を作成してデータをロードしましたしかし私は「searchform」から関数を呼び出しても、SQLクエリに選択された行を渡す方法がわからない:

以下
private void searchSelected() 
    { 
     { 
      con.Open(); 
      SqlCommand cmd = con.CreateCommand(); 
      cmd.CommandType = CommandType.Text; 
      cmd.CommandText = "Select * from tbl_customers where custId = '" + custIdTxt.SelectedItem.ToString() + "'"; 
      cmd.ExecuteNonQuery(); 
      DataTable dt = new DataTable(); 
      SqlDataAdapter sda = new SqlDataAdapter(cmd); 
      sda.Fill(dt); 
      foreach (DataRow dr in dt.Rows) 
      { 
       custIdTxt.Text = (dr["custId"].ToString()); 
       custRefTxt.Text = (dr["custRef"].ToString()); 
       nameTxt.Text = (dr["name"].ToString()); 
       contactTxt.Text = (dr["contact"].ToString()); 
       telephoneTxt.Text = (dr["telephone"].ToString()); 

      } 
      con.Close(); 
     } 
    } 

は、ユーザーが、彼らが見たい顧客を選択し、ダブルクリック機能であります詳細は:

private void searchResults_CellDoubleClick(object sender, DataGridViewCellEventArgs e) 
    { 
     this.Close(); 
    } 

答えて

0

まずMainFormを

searchform srcform= new searchform(); 
srcform.mainform = this; 
srcform.ShowDialog(); 

などをダブルクリックイベントで

private void dataGridView1_CellMouseDoubleClick(object sender, DataGridViewCellMouseEventArgse) 
{ 
    if(e.RowIndex > -1) 
    { 
      var row = dataGridView1.Rows[e.RowIndex]; 
      searchSelected(Convert.ToInt32(row["custId"].ToString())); 
    } 
} 

変更searchSelected方法を割り当てることがsearchform書き込み、これを開く前にmain formsearchform

MainForm mainform; 

そして上mainform変数を作成この

private void searchSelected(int custId) 
    { 
     { 
      //codes 
      cmd.CommandText = "Select * from tbl_customers where custId = '" + custId + "'"; 
      //codes 
     } 
    } 
+0

おかげさまで私は混乱してしまったと思います。あなたの正確な問題を理解するのに役立つスクリーンショットを添付しました。 – ZeeSoft

+0

searchSelectedメソッドをsearchformに移動するだけです。それはあなたの問題を解決します –

+0

運がいいです。ダブルクリックでメインフォームに関数を呼び出す方法はありますか?それから、文字列を送信してクエリを実行するだけです – ZeeSoft

関連する問題