Files
DbTools/DbToolsTester/Forms/TableChooserForm.cs

71 lines
2.5 KiB
C#

using DbTools;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SQLite;
using System.IO;
using System.Linq;
namespace DbToolsTester.Forms {
public partial class TableChooserForm : DevExpress.XtraEditors.XtraForm {
List<TreeItem> TreeItems = new List<TreeItem>();
public string SelectedTable { get; private set; }
public string SelectedDatabase { get; private set; }
public TableChooserForm() {
InitializeComponent();
}
private int AddTreeItem(string text, int parentId = 0) {
TreeItems.Add(new TreeItem(text, TreeItems.Count + 1, parentId));
return TreeItems.Count;
}
private void TableChooserForm_Load(object sender, EventArgs e) {
SqlBuilder builder = new SqlBuilder();
int db1 = AddTreeItem(Path.GetFileName(MainForm.Instance.Database1File));
int db2 = AddTreeItem(Path.GetFileName(MainForm.Instance.Database2File));
using (SQLiteConnection cn = new SQLiteConnection("Data Source=" + MainForm.Instance.Database1File + "; Version=3;")) {
string[] tables = builder.GetTableNames(cn).OrderBy(f => f).ToArray();
foreach (string table in tables) {
AddTreeItem(table, db1);
}
}
using (SQLiteConnection cn = new SQLiteConnection("Data Source=" + MainForm.Instance.Database2File + "; Version=3;")) {
string[] tables = builder.GetTableNames(cn).OrderBy(f => f).ToArray();
foreach (string table in tables) {
AddTreeItem(table, db2);
}
}
treeList1.DataSource = TreeItems;
treeList1.ExpandAll();
}
private void treeList1_FocusedNodeChanged(object sender, DevExpress.XtraTreeList.FocusedNodeChangedEventArgs e) {
if (e.Node == null || e.Node.ParentNode == null) {
SelectedTable = null;
SelectedDatabase = null;
return;
}
SelectedDatabase = e.Node.ParentNode.GetValue(0).ToString();
SelectedTable = e.Node.GetValue(0).ToString();
}
}
internal class TreeItem {
public int ID { get; set; }
public int ParentID { get; set; }
public string Text { get; set; }
public TreeItem() { }
public TreeItem(string text, int id, int parentId = 0) {
ID = id;
ParentID = parentId;
Text = text;
}
}
}