public long SaveServer(AppDBServerLink server) { MySqlCommand qry; if (server.id > 0) { // update qry = new MySqlCommand("update connection set type=?type, name=?name, host=?host, port=?port, username=?username, password=?password, databasename=?databasename, extraparams=?extraparams where id=?id", db); qry.Parameters.AddWithValue("?id", server.id); } else { // insert qry = new MySqlCommand("insert into connection ( type, name, host, port, username, password, databasename, extraparams) values (?type,?name,?host,?port,?username,?password,?databasename,?extraparams); select last_insert_id();", db); } qry.Parameters.AddWithValue("?type", server.type); qry.Parameters.AddWithValue("?name", server.name); qry.Parameters.AddWithValue("?host", server.host); qry.Parameters.AddWithValue("?port", server.port); qry.Parameters.AddWithValue("?username", server.username); qry.Parameters.AddWithValue("?password", server.password); qry.Parameters.AddWithValue("?databasename", server.databasename); qry.Parameters.AddWithValue("?extraparams", server.extraparams); qry.ExecuteNonQuery(); // get inserted id and assign to in server.id if (server.id <= 0) { server.id = qry.LastInsertedId; } return(server.id); }
/// <summary> /// Open a new tab for the selected server, if we can connect to the server. /// </summary> /// <param name="connection_id">id</param> /// <param name="title">connection name to put in the tab header, should probably be accompanied by the id?</param> private void ConnectToServer(AppDBServerLink connection) { try { var tabcontent = new ConnectionTabControl(); tabcontent.Height = double.NaN; tabcontent.Width = double.NaN; tabcontent.Margin = new Thickness(0, 0, 0, 0); tabcontent.HorizontalAlignment = HorizontalAlignment.Stretch; tabcontent.VerticalAlignment = VerticalAlignment.Stretch; // setup the datasource to provide querynames tabcontent.Initialize(appDB, connection.id); // this also connects to the database and will throw an exception when we can't connect tabcontent.SetDatabaseConnection((AppDBServerType)connection.type, connection.GetConnectionString()); // create a new tab with usercontrol instance and stretch align that to the tab var tab = new TabItem(); var header = new CloseableTabHeader(connection.name); header.OnClose = () => { // implementation when x button is used on tab pgTabs.Items.Remove(tab); QueryComposerResources.UnsetComposerHelper(tabcontent.DBConnection); }; tab.Header = header; tab.Content = tabcontent; pgTabs.Items.Add(tab); pgTabs.SelectedIndex = pgTabs.Items.IndexOf(tab); // if updatelayout() isn't used, recalculatesize() won't work pgTabs.UpdateLayout(); header.RecalculateSize(); } catch (Exception ex) { MessageBox.Show(ex.Message, "Connecting", MessageBoxButton.OK, MessageBoxImage.Warning); } }
public void DelServer(AppDBServerLink server) { SQLiteCommand qry; if (server.id > 0) { qry = new SQLiteCommand("delete from connection where id=@id", db); qry.Parameters.AddWithValue("@id", server.id); qry.ExecuteNonQuery(); server.id = 0; } else { // if this server isn't an entry in the database, that's ok with me // throw new Exception(""); } }
private void lstConnections_MouseDoubleClick(object sender, MouseButtonEventArgs e) { if (lstConnections.SelectedIndex >= 0) { // determine selected connection var connection = new AppDBServerLink(lstConnections.SelectedItem); // todo: handle connection errors before opening new tab // connect to the right server Cursor = Cursors.Wait; try { ConnectToServer(connection); } finally { Cursor = Cursors.Arrow; } } }
public long SaveServer(AppDBServerLink server) { SQLiteCommand qry; if (server.id > 0) { // update qry = new SQLiteCommand("update connection set type=@type, name=@name, host=@host, port=@port, username=@username, password=@password, databasename=@databasename, extraparams=@extraparams where id=@id", db); qry.Parameters.AddWithValue("@id", server.id); } else { // insert qry = new SQLiteCommand("insert into connection ( type, name, host, port, username, password, databasename, extraparams) values (@type,@name,@host,@port,@username,@password,@databasename,@extraparams);", db); } qry.Parameters.AddWithValue("@type", server.type); qry.Parameters.AddWithValue("@name", server.name); qry.Parameters.AddWithValue("@host", server.host); qry.Parameters.AddWithValue("@port", server.port); qry.Parameters.AddWithValue("@username", server.username); qry.Parameters.AddWithValue("@password", server.password); qry.Parameters.AddWithValue("@databasename", server.databasename); qry.Parameters.AddWithValue("@extraparams", server.extraparams); qry.ExecuteNonQuery(); // get inserted id and assign to in server.id if (server.id <= 0) { qry.CommandText = "select last_insert_rowid()"; server.id = (long)qry.ExecuteScalar(); } return(server.id); }
public long SaveServer(AppDBServerLink server) { SQLiteCommand qry; if (server.id > 0) { // update qry = new SQLiteCommand("update connection set type=@type, name=@name, host=@host, port=@port, username=@username, password=@password, databasename=@databasename, extraparams=@extraparams where id=@id", db); qry.Parameters.AddWithValue("@id", server.id); } else { // insert qry = new SQLiteCommand("insert into connection ( type, name, host, port, username, password, databasename, extraparams) values (@type,@name,@host,@port,@username,@password,@databasename,@extraparams);", db); } qry.Parameters.AddWithValue("@type", server.type); qry.Parameters.AddWithValue("@name", server.name); qry.Parameters.AddWithValue("@host", server.host); qry.Parameters.AddWithValue("@port", server.port); qry.Parameters.AddWithValue("@username", server.username); qry.Parameters.AddWithValue("@password", server.password); qry.Parameters.AddWithValue("@databasename", server.databasename); qry.Parameters.AddWithValue("@extraparams", server.extraparams); qry.ExecuteNonQuery(); // get inserted id and assign to in server.id if (server.id <= 0) { qry.CommandText = "select last_insert_rowid()"; server.id = (long)qry.ExecuteScalar(); } return server.id; }
public long SaveServer(AppDBServerLink server) { MySqlCommand qry; if (server.id > 0) { // update qry = new MySqlCommand("update connection set type=?type, name=?name, host=?host, port=?port, username=?username, password=?password, databasename=?databasename, extraparams=?extraparams where id=?id", db); qry.Parameters.AddWithValue("?id", server.id); } else { // insert qry = new MySqlCommand("insert into connection ( type, name, host, port, username, password, databasename, extraparams) values (?type,?name,?host,?port,?username,?password,?databasename,?extraparams); select last_insert_id();", db); } qry.Parameters.AddWithValue("?type", server.type); qry.Parameters.AddWithValue("?name", server.name); qry.Parameters.AddWithValue("?host", server.host); qry.Parameters.AddWithValue("?port", server.port); qry.Parameters.AddWithValue("?username", server.username); qry.Parameters.AddWithValue("?password", server.password); qry.Parameters.AddWithValue("?databasename", server.databasename); qry.Parameters.AddWithValue("?extraparams", server.extraparams); qry.ExecuteNonQuery(); // get inserted id and assign to in server.id if (server.id <= 0) { server.id = qry.LastInsertedId; } return server.id; }