Q:

¿Cómo puedo ingresar un Nodo en sql server desde TreeView? C# y Windows Form

Tengo un TreeView en 3 capas, ya me carga mi TreeView desde sql a visual studio mediante un funcion recursiva, pero no logro hacer que se me guarde en la base de datos, se me guarda en la vista porque logro ver el nodo con su nombre pero al cerrar la aplicación desaparece, y es porque no se está guardando en la base de datos, me pueden decir si es que tengo la función de InsertarNodos desde mi capa Datos mal?
Capa Datos:
        public void InsertarNodos(datostreeview parametros)
            {
            comandSql.Connection = con.AbrirConexion();
            comandSql.CommandText = "sp_InsertarNodos";
            comandSql.CommandType = CommandType.StoredProcedure;

            comandSql.Parameters.AddWithValue("@Codigo", parametros.Codigo);
            comandSql.Parameters.AddWithValue("@Nombre", parametros.Nombre);
            comandSql.Parameters.AddWithValue("@CodigoRapido", parametros.Codigorapido);
            comandSql.Parameters.AddWithValue("@Idpadre", parametros.Idpadre);

            comandSql.ExecuteNonQuery();
            comandSql.Parameters.Clear();
            con.CCerraConexion();
            }

Capa Negocio:
         public void InsertarAttr(string codigo, string nombre, string codigorapido, int idpadre)
            {
            obje_cdtreeview.Codigo = codigo;
            obje_cdtreeview.Nombre = nombre;
            obje_cdtreeview.Codigorapido = Convert.ToInt32(codigorapido);
            obje_cdtreeview.Idpadre = idpadre;
            }

capa presentación:
 private void button1_Click(object sender, EventArgs e)
        {
        if (editar == false)
        {
            try
            {

                if (textBox1.Text != "" || textBox2.Text != "")
                {
                    nodoSeleccionado = treeView1.SelectedNode;
                    padre = int.Parse(dataTableNodos.Rows[int.Parse(nodoSeleccionado.Tag.ToString())]["IdPCuentas"].ToString());

                    textBox1.Text = textBox1.Text + ".";
                    string Codigo = textBox1.Text;
                    textBox2.Text = textBox2.Text.ToUpper();
                    string Nombre = textBox2.Text;
                    textBox3.Text = Codigo.Replace(".", "");
                    string Codigorapido = textBox3.Text;

                    objc_treeview.InsertarAttr(Codigo, Nombre, Codigorapido, padre);

                    MessageBox.Show("Se guardo el Registro");

                    textBox1.Enabled = false;
                    textBox2.Enabled = false;

                    TreeNode nodoInsertado = new TreeNode();
                    nodoInsertado.Text = Codigo + "  " + Nombre;
                    nodoSeleccionado.Nodes.Add(nodoInsertado);
                }

Corregido el error pero sigue sin guardarme.

A:

EDITO, tras la rectificación del error anterior
El método InsertarNodos insertar nodos parece correcto, sin conocer el contenido del procedimiento almacenado sp_InsertarNodos.
El problema es que este método no lo llamas en ninguna parte, jamás va a entrar en la inserción de la base de datos.
** FIN DE LA EDICIÓN **
Parece un error muy simple:
Agregas el parámetro
comandSql.Parameters.AddWithValue("Idpadre", parametros.Idpadre);

Cuando debería ser
comandSql.Parameters.AddWithValue("@Idpadre", parametros.Idpadre);

Por otro lado asegúrate que los parámetros @Codigo, @Nombre, @CodigoRapido y @Idpadre están exactamente escritos en tu procedimiento almacenado-

