Added tablechooser and SqlBuilder class
This commit is contained in:
71
DbToolsTester/Forms/TableChooserForm.cs
Normal file
71
DbToolsTester/Forms/TableChooserForm.cs
Normal file
@@ -0,0 +1,71 @@
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user