在TreeView中選中指定的數據庫建立新表,SQLite中同時創建完成,並通過XML記錄在案,實現在程序第二次加載時能夠記錄你創建的新表

一、項目需求

項目需求:在Treeview控件上右鍵鼠標,彈出菜單欄,選中創建數據庫,界面上彈出一個對話框要求輸入數據庫名,然後再主界面TreeView中顯示你剛剛創建的數據庫,要求在程序第二次加載時保留你新建的數據庫。
1.contextMenStrip
這是需用使用一個contextMenStrip1控件,你只需在Items中增加MenuItem就能增加選項,如下圖所示:
在這裏插入圖片描述
建立一個事件:右擊新建數據庫彈出對話寬。

 private void NEWBuildDatabase_Click(object sender, EventArgs e)//新建一個數據庫
        {
            DataabaseName FormDatabaseName = new DataabaseName();
            FormDatabaseName.NewDatabaseEvent += new NewDatabaseHandler(NewDatabaseProgress);//3.註冊事件
            FormDatabaseName.Show();
            FormDatabaseName.Focus();
        }

2.新建一個窗口,用於輸入數據庫名字
具體怎做?如何使其和主界面交互可需要使用委託的方法,網上有很多教程,實在不明白可以留言。
在這裏插入圖片描述

3.把你新建的數據庫寫入到XML中,並在SQLite中建立數據庫,使其在程序第二次啓動時讀取。
代碼中提供的DatabaseParameters.xml可以在這裏下載。
關於SQLite的更多操作可以看博客【C# SQLite數據庫操作:創建數據庫,創建表,刪除表,插入數據,讀出數據,加密數據庫,增加列

       void NewDatabaseProgress()
        {
            bool yesorno = false;
            string xmlpath = Application.StartupPath + "//DatabaseParameters.xml";
            if (File.Exists(xmlpath))//讀取xml文件
            {
                foreach (string bch in statistics)
                {
                    if (bch == GlobalVariable.newdatabasename)
                        yesorno = true;
                }
                if (yesorno)
                {
                    MessageBox.Show("數據庫存在!");
                }
                else
                {
                    try
                    {
                        XmlDocument xmlDoc = new XmlDocument();
                        xmlDoc.Load(xmlpath);
                        XmlElement xmlElement = xmlDoc.DocumentElement;//獲得文檔的根元素
                        XmlElement stu1 = xmlDoc.CreateElement(GlobalVariable.newdatabasename);
                        stu1.SetAttribute("name", GlobalVariable.newdatabasename);
                        xmlElement.AppendChild(stu1);//加入xml文件中

                        TreeNode RootNode = new TreeNode(GlobalVariable.newdatabasename);//父節點
                        RootNode.ImageIndex = 0;
                        RootNode.SelectedImageIndex = 0;
                        treeView1.Nodes.Add(RootNode);//增加根節點
                        xmlDoc.Save(xmlpath);
                        statistics.Add("1");
                        statistics.Add(GlobalVariable.newdatabasename);
                        string startpath = Application.StartupPath+ "\\DatabaseSummarizing\\"+ GlobalVariable.newdatabasename+".db"; //建立數據庫 
                        SQLiteConnection.CreateFile(startpath);                        
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                    }
                }               
            }
            else
            {
                MessageBox.Show("文件不存在!");
            }
        }
        

更加具體的往TreView中增加父節點和子節點的操作可以關注博客
TreeView通過讀取XML動態添加副節點和子節點,並且如何給父節點和子節點添加不同的圖片

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章