2017-01-30 57 views
0

enter image description here嗨我有一個主窗體顯示客戶的詳細信息。我創建了一個單獨的表單來搜索特定的客戶。在doubleclick事件中,我想要將數據加載到主窗體中的一些文本框中,並關閉我通過此網站嘗試了幾件事情,但沒有運氣。c#datagridview雙擊加載數據到單獨的形式

我在mainform中創建了此函數來加載數據但是我不知道如何從「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

searchform

MainForm mainform; 

然後首先創建mainform變量上main form打開searchform寫在這之前分配的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方法一樣這

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

但是,我認爲我們混淆了 - 我附上了截圖,以幫助您瞭解我的確切問題。 – ZeeSoft

+0

只需將searchSelected方法移至searchform即可。它會解決你的問題 –

+0

沒有運氣。雙擊時是否有在主窗體中調用函數的方法?然後我只是發送字符串並運行查詢 – ZeeSoft

相關問題