Как получить данные с узлов дерева просмотра, которые проверены и сохранить их в базе данных - PullRequest
0 голосов
/ 10 июля 2019

Моя база данных состоит из таблицы вопросника для хранения вопросов и таблицы выбора для хранения параметров, связанных с соответствующим вопросом. Я успешно смог отобразить их в иерархической структуре, используя TreeView вместе с флажками. Но не в состоянии вернуть тот, который проверен. Может ли кто-нибудь, пожалуйста, помогите. Я пробовал много способов, но не повезло. Я попробовал код ниже, чтобы просто отобразить сообщение со значениями.

 foreach (TreeNode node in treeView1.Nodes)//.CheckedNodes)
            {


                //TreeNodeCollection Child = ;
                MessageBox.Show(node.TreeView.Nodes.ToString());
                if (node.IsSelected)
                    MessageBox.Show(node.Text + " " + node.Tag + "\\n");


                //message += node.Text + " " + node.Tag + "\\n";


            }




private void Load_CloseEnded_Questions()
        {
            treeView1.Nodes.Clear();

            con = new OleDbConnection();
            treeView1.CheckBoxes = true;
            con.ConnectionString = GlobalClass.GlobalVar;
            TreeNode child;
            try
            {
                OleDbCommand cmd = new OleDbCommand();
                OleDbCommand cmd2 = new OleDbCommand();


                cmd.Connection = con;
                cmd2.Connection = con;
                con.Open();

                //SQL Query to retrive questions
                cmd.CommandText = "SELECT q2.questionText, q2.questionId, q2.sequenceNo, q2.questionType FROM questions q2 WHERE q2.sequenceNo <( SELECT q1.sequenceNo FROM questions q1 WHERE q1.questionId = " + QUESTIONID + " )  and q2.questionType = \"Close Ended\" ORDER BY q2.sequenceNo;";
                OleDbDataReader dr = cmd.ExecuteReader();

                if (dr.HasRows)
                {
                    while (dr.Read())
                    {
                        //Store questions from database to Tree Parent nodes
                        TreeNode parent = new TreeNode
                        {
                            Text = dr[0].ToString(),
                            Tag = Convert.ToInt32(dr[1])
                        };

                        //SQL Query to retrive options associated to the question 
                        cmd2.CommandText = "SELECT choices.choiceName, choices.choiceId FROM ((questions INNER JOIN parameter ON questions.parameterId = parameter.parameterId) INNER JOIN choices ON parameter.parameterId = choices.parameterId) WHERE (questions.questionId = " + Convert.ToInt32(dr[1]) + ")";
                        OleDbDataReader dr2 = cmd2.ExecuteReader();

                        if (dr2.HasRows)
                            {
                                while (dr2.Read())
                                {
                                  //Store the options from database to Child Node
                                    child = new TreeNode
                                    {
                                        Text = dr2[0].ToString(),
                                        Tag = Convert.ToInt32(dr[1])
                                    };

                                    TreeNode node1 = new TreeNode();
                                child.Checked = false;
                                parent.Nodes.Add(child);

                             }
                            treeView1.Nodes.Add(parent);
                            dr2.Close();

                        }
                    }
                }
                else
                {
                    MessageBox.Show("No Questions were found.", "STAR", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    treeView1.Enabled = false;

                }

                dr.Close();
                con.Close();
                con.Dispose();
            }
            catch (Exception ex)
            {
                MessageBox.Show("" + ex, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                con.Dispose();
                con.Close();
            }
        }

I expected to retrive the nodes values(text and tag) those are checked
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...