71 lines
2.5 KiB
C#
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;
|
|
}
|
|
}
|
|
} |