Files
DbTools/DbToolsTester/Forms/MainForm.cs
2025-09-01 07:42:35 -05:00

61 lines
2.5 KiB
C#

using DbTools;
using System.Data.SQLite;
using System.IO;
using System.Windows.Forms;
namespace DbToolsTester.Forms {
public partial class MainForm : DevExpress.XtraEditors.XtraForm {
public string DatabaseName { get; set; }
public string Database1File { get; set; }
public string Database2File { get; set; }
public MainForm() {
InitializeComponent();
}
private void XtraTabControl1_CustomHeaderButtonClick(object sender, DevExpress.XtraTab.ViewInfo.CustomHeaderButtonEventArgs e) {
string tag = e.Button.Tag?.ToString();
if (tag == "open") {
Database1File = getDatabaseFile("Select Original / Production Database...");
Database2File = getDatabaseFile("Select Template / New Schema Database...");
DatabaseName = Path.GetFileNameWithoutExtension(Database1File);
Text += " [ Production DB = " + Path.GetFileName(Database1File) + "; Schema DB = " + Path.GetFileName(Database2File) + " ]";
} else if (tag == "clear") {
Database1File = null;
Database2File = null;
db1Sql.Clear();
db2Sql.Clear();
deltaSql.Clear();
Text = "DbSync Tester";
}
}
private string getDatabaseFile(string title = "Select Database File...") {
OpenFileDialog dlg = new OpenFileDialog() {
Filter = "Database Files (*.sql;*.sqlite;*.db)|*.sql;*.sqlite;*.db|SQL Files (*.sql)|*.sql|Sqlite Files (*.sqlite;*.db)|*.sqlite;*.db|Text Files (*.txt)|*.txt|All Files (*.*)|*.*",
CheckFileExists = true,
Multiselect = false,
Title = title
};
if (dlg.ShowDialog() == DialogResult.OK) {
return dlg.FileName;
}
return null;
}
private void ToolbarItemClicked(object sender, DevExpress.XtraBars.ItemClickEventArgs e) {
if (e.Item.Equals(bbiDelta)) {
SQLiteConnection db1 = new SQLiteConnection("Data Source=" + Database1File + ";Version=3;");
SQLiteConnection db2 = new SQLiteConnection("Data Source=" + Database2File + ";Version=3;");
Delta delta = new Delta();
deltaSql.Text = delta.BuildDelta(db1, db2, true, true);
db1Sql.Text = delta.Db1Sql;
db2Sql.Text = delta.Db2Sql;
}
}
}
}