2017-03-21 2 views
0

Ich habe eine Baumansicht, die beim Doppelklicken auf einen Assistenten mit einem Textfeld, das den übergeordneten Knoten der Baumansicht umbenennen sollte.Wie ändere ich den Namen des Elternknotens der Baumansicht, die mit einem Assistenten verknüpft ist

Here is the image that shows how the parentnode is supposed to get renamed after i click the finish wizard which fetches the node name from a textbox named new project name

Hier ist der Code-Snippet für das Finish Assistenten Schaltfläche:

private void button1_Click_1(object sender, EventArgs e) //Wizard page finish button 
    { 
     con.Open(); 
     String query = "Insert into Project_details values ('" + textnewproid.Text + "','" + textprojname.Text + "','" + textbuilt.Text + "','" + textrevno.Text + "')"; 
     SqlCommand cmd = new SqlCommand(query, con); 
     cmd.ExecuteNonQuery(); 

     MessageBox.Show(textprojname.Text); 
     SERVER myopc = new SERVER(); //Main form 
     SqlDataAdapter da = new SqlDataAdapter("Select * from Project_details where Proj_name='" + textprojname.Text + "'",con); 
     DataSet myds = new DataSet(); 
     da.Fill(myds,"Project_details"); //Project_details is the table that contains values 
     foreach (DataRow dr in myds.Tables["Project_details"].Rows) //throws exception 
     { 
      TreeNode parent = new TreeNode(); 
      parent.Text = dr["proj_name"].ToString(); 
      parent.ContextMenuStrip = myopc.contextMenuStrip1; 
      myopc.treeView1.Nodes.Add(parent); 
     } 
     con.Close(); 
     this.Close(); 
    } 

Nachdem ich die Schaltfläche Finish klicken i ein NULL-Verweis Ausnahme auftreten, die besagt, Object refernce auf eine Instanz eines nicht gesetzt Objekt.

Projektdetails Db enthält 4 Spalten: PROJ_ID, PROJ_NAME, Proj_built, Proj_rev

+0

Wir (offensichtlich) müssen wissen: Welche Zeile löst die Ausnahme aus ??? – TaW

+0

Sie müssen den Datensatz richtig ausfüllen! Ihr Konstruktor sieht ernsthaft [falsch] (https://msdn.microsoft.com/en-us/library/7se64052%28v=vs.110%29.aspx). Du solltest den Namen einspeisen, kein sql select !! – TaW

+0

@TaW wie ist es jetzt ist es richtig? – Pikachu

Antwort

0
 **possibilities Issued** 

1) Überprüfen Sie, ob dr["proj_name"].ToString() gibt Ihnen den Wert oder nicht.

2) Ich habe bemerkt, dass Sie einmal initialisiert und ruft jedes Mal Code: -

SERVER myopc = new SERVER(); //initialized once 
foreach (DataRow dr in myds.Tables["Project_details"].Rows) 
    { 
     TreeNode parent = new TreeNode(); 
     parent.Text = dr["proj_name"].ToString(); 
     parent.ContextMenuStrip = myopc.contextMenuStrip1;//myopc called many times 
     myopc.treeView1.Nodes.Add(parent);//same here myopc 
    } 

3) bei "Parent-Objekt" suchen möchten, können Sie das Problem mit Eltern Code aktualisieren

parent.ContextMenuStrip = myopc.contextMenuStrip1 //this statement need to look 
Verwandte Themen