一、項目需求
項目需求:在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動態添加副節點和子節點,並且如何給父節點和子節點添加不同的圖片】