Help with one line of code

Hello,

I have this methode below. The line marked with an arrow does not work.
The data that will be entered into the textbox will not be saved to the column
Data of the database.

But when i change the code to this it works:
row["Data"] = "TEST";

What should there be changed to get the content of the textbox into the column Data
of the database.

Peter
       
private void InsertNewItem(TreeNode node)
        {
            DataRow row = null;
            DataRow ParentRow = null;
            DataTable dt = null;
            int newindex = 0;
            try
            {
                ParentRow = (DataRow)node.Tag;
                if (ParentRow == null) { return; }
                newindex = int.Parse(ParentRow["SortOrder"].ToString()) + 1;
                dt = ParentRow.Table;
                row = dt.NewRow();
                row["ModelID"] = int.Parse(ParentRow["ModelID"].ToString());
                row["NodeID"] = Guid.NewGuid().ToString();
                row["ParentNodeID"] = ParentRow[dt.PrimaryKey[0].ColumnName].ToString();
                row["Description"] = "New Node";
                row["ImageIndex"] = 3;
                row["SelectedImageIndex"] = 3;
                row["SortOrder"] = newindex;
                row["Data"] = textBox1.text <=========================
                dt.Rows.Add(row);
                TreeNode newNode = GetTreeNodeFromDataRow(row, "Description");
                node.Nodes.Add(newNode);
                tvNotes.SelectedNode = newNode;
            }
            catch (Exception) { throw; }
        }

Open in new window

LVL 1
peterkiersAsked:
Who is Participating?
 
AndyAinscowConnect With a Mentor Freelance programmer / ConsultantCommented:
Does this work?

private void tbAccChan_Click(object sender, EventArgs e)
        {
            DataRow row = null;
            Hourglass(true);
            try
            {
                if (tvNotes.Nodes.Count == 0) { return; }
                row = (DataRow)tvNotes.Nodes[0].Tag;
row["Data"] = textBox1.Text;
                CommitHierarchy(DBConStr, row.Table.DataSet);
            }
            catch (Exception err) { MessageBox.Show(err.Message); }
            finally { Hourglass(false); }
        }

0
 
AndyAinscowFreelance programmer / ConsultantCommented:
textBox1.Text

Capital letter
0
 
Carl TawnConnect With a Mentor Systems and Integration DeveloperCommented:
Well, # is case-sensitive, so unless that is a type in the post it should say:
row["Data"] = textBox1.Text;

Open in new window

0
Cloud Class® Course: CompTIA Cloud+

The CompTIA Cloud+ Basic training course will teach you about cloud concepts and models, data storage, networking, and network infrastructure.

 
JoeNuvoCommented:
How about this code?

row["Data"] = textBox1.Text.ToString();
0
 
peterkiersAuthor Commented:
row["Data"] = textBox1.Text.ToString();

is not working

Peter
0
 
Carl TawnSystems and Integration DeveloperCommented:
"not working" how? If a hard-coded string works then pulling the text from a textbox should also work. Assuming "textbox1" is a valid object and that there is actually some text in it.
0
 
AndyAinscowFreelance programmer / ConsultantCommented:
Any error message?

(The ToString shouldn't be required, Text ought to be suitable)
0
 
peterkiersAuthor Commented:
Carl_Tawn you right but still the code does not work!

I have this to save the textbox.text to the column Data of the database.

                row["Data"] = mmoNotes.Text.ToString();

And this for reading the data of the column Data and put it in the textbox

        private void tvNotes_AfterSelect(object sender, TreeViewEventArgs e)
        {
            DataRow row = e.Node.Tag as DataRow;
            mmoNotes.Text = row["Data"].ToString();
        }

The last methode works but not the first line.

P.
0
 
AndyAinscowFreelance programmer / ConsultantCommented:
String s = mmoNotes.Text.ToString();
row["Data"] = mmoNotes.Text.ToString(); //Breakpoint here - what is the value of s ?
0
 
peterkiersAuthor Commented:
No errors.

I think it called a logical error, no errors but it doesn't work either.


Peter
0
 
AndyAinscowFreelance programmer / ConsultantCommented:
By the way how do you test?  I don't see any code for saving this to a database.
0
 
peterkiersAuthor Commented:
I have attached the whole code.

Peter
MyApp.txt
0
 
peterkiersAuthor Commented:
This is the procedure that saves the treeview to the database:

        private void tbAccChan_Click(object sender, EventArgs e)
        {
            DataRow row = null;
            Hourglass(true);
            try
            {
                if (tvNotes.Nodes.Count == 0) { return; }
                row = (DataRow)tvNotes.Nodes[0].Tag;
                CommitHierarchy(DBConStr, row.Table.DataSet);
            }
            catch (Exception err) { MessageBox.Show(err.Message); }
            finally { Hourglass(false); }
        }

Peter
0
 
peterkiersAuthor Commented:
I quess I was looking at the wrong methode.

Because the methode above is the methode that saves the treeview to the database.
now I have to save the text of the textbox as well. How can I do that?

Peter
0
 
peterkiersAuthor Commented:
When changes are made to the treeview and the user presses a button
that will save the changes to the database. These 3 methodes actually does this.

the "tbAccChan_Click" calls for the "CommitHierarchy" and this finally calls for the
"CommitToDataBase"methode.

So 1 one of these methodes has something to be changed.

Peter
3methodes.txt
0
 
peterkiersAuthor Commented:
it works but it doesn't take the right row.

Peter
0
 
Kusala WijayasenaSoftware EngineerCommented:

Hi Peter,

row = (DataRow)tvNotes.Nodes[0].Tag

Open in new window


I have a doubt that above code is always referring Node[0]. Is it right ?

-Kusala  
0
 
peterkiersAuthor Commented:
yes this is right.
0
 
peterkiersAuthor Commented:
I give up.

Peter
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.