public FrmUserlist() { InitializeComponent(); XMLInitializer initxml = new XMLInitializer(); if(initxml.XMLStructureInitialized("users")) { XmlReader xmlFile = XmlReader.Create(xmlPath, new XmlReaderSettings()); try { ds.ReadXml(xmlFile); xmlFile.Close(); lvUsers.ItemsSource = ds.Tables["user"].DefaultView; } catch(XmlException ex) { MessageBox.Show("Die Benutzerdatenbank ist korrupt. Es wird nun eine neue Benutzerdatenbank angelegt." + Environment.NewLine + Environment.NewLine + "Die korrupte Benutzerdatenbank wird gesichert und der Administrator per eMail kontaktiert. Bitte einen Moment Geduld.", "Fehler", MessageBoxButton.OK, MessageBoxImage.Error); File.Move(xmlPath, xmlPath + ".corrupt"); File.Delete(xmlPath); initxml.CreateXMLFileStructure("users"); ExceptionReporter ExReport = new ExceptionReporter(ex); ExReport.ReportExceptionToAdmin(xmlPath + ".corrupt"); } } }
public FrmChangeDealer(string id) { InitializeComponent(); _id = id; var connString = new SqlConnectionStringBuilder { DataSource = "localhost", InitialCatalog = "AMAM", IntegratedSecurity = true }; using(var sqlConn = new SqlConnection(connString.ToString())) { try { sqlConn.Open(); var readRow = new SqlCommand("SELECT Vertrieb, eMail, Kundennummer FROM Dealers WHERE VertriebID = @paramPK", sqlConn); readRow.Parameters.Add(new SqlParameter("@paramPK", id)); using(SqlDataReader dr = readRow.ExecuteReader()) { while(dr.Read()) { TbDealer.Text = dr["Vertrieb"].ToString(); TbMail.Text = dr["eMail"].ToString(); TbCustomerId.Text = dr["Kundennummer"].ToString(); } } } catch(SqlException ex) { var reporter = new ExceptionReporter(ex); reporter.ReportExceptionToAdmin(); MessageBox.Show("Auf die Datenbank konnte nicht zugegriffen werden. Ein Fehlerbericht wurde an den Administrator gesendet.", "Fehler", MessageBoxButton.OK, MessageBoxImage.Error); } finally { if(sqlConn.State == ConnectionState.Open) { sqlConn.Close(); } } } }
private static void AddDealerToDataBase(string dealerName, string mail, string cutomerID) { var connStringBuilder = new SqlConnectionStringBuilder { DataSource = "localhost", IntegratedSecurity = true, InitialCatalog = "AMAM" }; using(var sqlConn = new SqlConnection(connStringBuilder.ToString())) { try { sqlConn.Open(); var newRowCommand = new SqlCommand("INSERT INTO Dealers (Vertrieb, eMail, Kundennummer) "+ "VALUES(@paramVertrieb, @paramMail, @paramCustomerID)", sqlConn); newRowCommand.Parameters.Add(new SqlParameter("@paramVertrieb", dealerName)); newRowCommand.Parameters.Add(new SqlParameter("@paramMail", mail)); newRowCommand.Parameters.Add(new SqlParameter("@paramCustomerID", cutomerID)); newRowCommand.ExecuteNonQuery(); } catch(SqlException ex) { var reporter = new ExceptionReporter(ex); reporter.ReportExceptionToAdmin(); MessageBox.Show("Auf die Datenbank konnte nicht zugegriffen werden. Ein Fehlerbericht wurde an den Administrator gesendet.", "Fehler", MessageBoxButton.OK, MessageBoxImage.Error); } finally { if(sqlConn.State == System.Data.ConnectionState.Open) { sqlConn.Close(); } } } }
public FrmProductList() { InitializeComponent(); var connString = new SqlConnectionStringBuilder { DataSource = "localhost", InitialCatalog = "AMAM", IntegratedSecurity = true }; using(var sqlConn = new SqlConnection(connString.ToString())) { try { sqlConn.Open(); if(Sqlhelper.TableExists(sqlConn, "ProductNames") && Sqlhelper.TableExists(sqlConn, "ProductData") && Sqlhelper.TableExists(sqlConn, "Dealers")) { sqlConn.Close(); RefreshProductList(); } } catch(SqlException ex) { var reporter = new ExceptionReporter(ex); reporter.ReportExceptionToAdmin(); MessageBox.Show("Auf die Datenbank konnte nicht zugegriffen werden. Ein Fehlerbericht wurde an den Administrator gesendet.", "Fehler", MessageBoxButton.OK, MessageBoxImage.Error); } finally { if(sqlConn.State == ConnectionState.Open) { sqlConn.Close(); } } } }
private void RefreshDataBase() { _dt.Clear(); var connStringBuilder = new SqlConnectionStringBuilder { DataSource = "localhost", IntegratedSecurity = true, InitialCatalog = "AMAM" }; using(var sqlConn = new SqlConnection(connStringBuilder.ToString())) { try { sqlConn.Open(); if(Sqlhelper.TableExists(sqlConn, "Dealers")) { var dataAdapter = new SqlDataAdapter("SELECT * FROM Dealers", sqlConn); dataAdapter.Fill(_dt); } else { var newTable = new SqlCommand("CREATE TABLE Dealers (VertriebID int IDENTITY(1,1 )CONSTRAINT pkVertriebID PRIMARY KEY, "+ "Vertrieb nvarchar(255) NOT NULL, "+ "eMail nvarchar(255) NOT NULL, " + "Kundennummer nvarchar(255) NOT NULL)", sqlConn); newTable.ExecuteNonQuery(); var dataAdapter = new SqlDataAdapter("SELECT * FROM Dealers;", sqlConn); dataAdapter.Fill(_dt); } _dt.PrimaryKey = new[] { _dt.Columns["pkVertriebID"] }; DgDealers.DataContext = _dt; DgDealers.SelectedValuePath = "VertriebID"; } catch(SqlException ex) { var reporter = new ExceptionReporter(ex); reporter.ReportExceptionToAdmin(); MessageBox.Show("Auf die Datenbank konnte nicht zugegriffen werden. Ein Fehlerbericht wurde an den Administrator gesendet.", "Fehler", MessageBoxButton.OK, MessageBoxImage.Error); } finally { if(sqlConn.State == ConnectionState.Open) { sqlConn.Close(); } } } }
private void SearchForDataBase() { var connStringBuilder = new SqlConnectionStringBuilder {DataSource = "localhost", IntegratedSecurity = true}; using(var sqlConn = new SqlConnection(connStringBuilder.ToString())) { try { sqlConn.Open(); DataTable tblDatabases = sqlConn.GetSchema("Databases"); sqlConn.Close(); tblDatabases.PrimaryKey = new[] {tblDatabases.Columns["database_name"]}; if(tblDatabases.Rows.Contains("AMAM")) { BtnAddDealer.IsEnabled = true; } else { try { sqlConn.Open(); var newDataBaseCommand = new SqlCommand("CREATE DATABASE AMAM", sqlConn); newDataBaseCommand.ExecuteNonQuery(); tblDatabases = sqlConn.GetSchema("Databases"); tblDatabases.PrimaryKey = new[] { tblDatabases.Columns["database_name"] }; if(tblDatabases.Rows.Contains("AMAM")) { BtnAddDealer.IsEnabled = true; } } catch(SqlException ex) { var reporter = new ExceptionReporter(ex); reporter.ReportExceptionToAdmin(); MessageBox.Show("Auf den SQL-Server konnte nicht zugegriffen werden. Ein Fehlerbericht wurde an den Administrator gesendet.", "Fehler", MessageBoxButton.OK, MessageBoxImage.Error); } finally { if(sqlConn.State == ConnectionState.Open) { sqlConn.Close(); } } } } catch(SqlException ex) { var reporter = new ExceptionReporter(ex); reporter.ReportExceptionToAdmin(); MessageBox.Show("Auf den SQL-Server konnte nicht zugegriffen werden. Ein Fehlerbericht wurde an den Administrator gesendet.", "Fehler", MessageBoxButton.OK, MessageBoxImage.Error); } } }
private void RemoveDealer(object sender, RoutedEventArgs e) { MessageBoxResult executeRemove = MessageBox.Show("Sind Sie sicher, dass der Vertrieb " + DgDealers.SelectedValue + " gelöscht werden soll?", "Vertrieb löschen", MessageBoxButton.YesNo, MessageBoxImage.Question); if(executeRemove == MessageBoxResult.Yes) { var connStringBuilder = new SqlConnectionStringBuilder { DataSource = "localhost", IntegratedSecurity = true, InitialCatalog = "AMAM" }; using(var sqlConn = new SqlConnection(connStringBuilder.ToString())) { try { sqlConn.Open(); var removeDealerCommand = new SqlCommand("DELETE FROM Dealers WHERE VertriebID = @paramPK", sqlConn); removeDealerCommand.Parameters.Add(new SqlParameter("@paramPK", DgDealers.SelectedValue)); removeDealerCommand.ExecuteNonQuery(); RefreshDataBase(); } catch(SqlException ex) { var reporter = new ExceptionReporter(ex); reporter.ReportExceptionToAdmin(); MessageBox.Show("Auf die Datenbank konnte nicht zugegriffen werden. Ein Fehlerbericht wurde an den Administrator gesendet.", "Fehler", MessageBoxButton.OK, MessageBoxImage.Error); } finally { if(sqlConn.State == ConnectionState.Open) { sqlConn.Close(); } } } } }
private void RefreshProductList() { var connString = new SqlConnectionStringBuilder { DataSource = "localhost", InitialCatalog = "AMAM", IntegratedSecurity = true }; using(var sqlConn = new SqlConnection(connString.ToString())) { try { sqlConn.Open(); const string command = "SELECT ProductNames.Produktnummer, ProductNames.Produktname, Units.Einheit FROM ProductNames " + "INNER JOIN ProductData ON ProductData.Produktnummer = ProductNames.Produktnummer " + "INNER JOIN Units ON Units.EinheitID = ProductData.EinheitID " + "GROUP BY ProductNames.Produktnummer, ProductNames.Produktname, Units.Einheit"; var dataAdapter = new SqlDataAdapter(command, sqlConn); _productsTable.Clear(); dataAdapter.Fill(_productsTable); DgProducts.ItemsSource = _productsTable.DefaultView; DgProducts.SelectedValuePath = "Produktnummer"; } catch(SqlException ex) { var reporter = new ExceptionReporter(ex); reporter.ReportExceptionToAdmin(); MessageBox.Show("Auf die Datenbank konnte nicht zugegriffen werden. Ein Fehlerbericht wurde an den Administrator gesendet.", "Fehler", MessageBoxButton.OK, MessageBoxImage.Error); } finally { if(sqlConn.State == ConnectionState.Open) { sqlConn.Close(); } } } }
private void SelectedProductChanged(object sender, SelectionChangedEventArgs e) { var connString = new SqlConnectionStringBuilder { DataSource = "localhost", InitialCatalog = "AMAM", IntegratedSecurity = true }; using(var sqlConn = new SqlConnection(connString.ToString())) { try { sqlConn.Open(); const string command = "SELECT Dealers.Vertrieb, ProductData.Artikelnummer, ProductData.Preis FROM ProductData " + "INNER JOIN Dealers ON ProductData.VertriebID = Dealers.VertriebID " + "INNER JOIN Units ON Units.Einheit = @paramEinheit " + "WHERE ProductData.Produktnummer = @paramProduktnummer " + "AND ProductData.EinheitID = Units.EinheitID"; var dataAdapter = new SqlDataAdapter {SelectCommand = new SqlCommand(command, sqlConn)}; if(DgProducts.SelectedItem != null) { var currentRowView = (DataRowView)DgProducts.SelectedItem; DataRow row = currentRowView.Row; dataAdapter.SelectCommand.Parameters.Add(new SqlParameter("@paramProduktnummer", row["Produktnummer"].ToString())); dataAdapter.SelectCommand.Parameters.Add(new SqlParameter("@paramEinheit", row["Einheit"].ToString())); var productDataTable = new DataTable(); dataAdapter.Fill(productDataTable); DgProductData.DataContext = productDataTable.DefaultView; } else DgProductData.DataContext = null; } catch(SqlException ex) { var reporter = new ExceptionReporter(ex); reporter.ReportExceptionToAdmin(); MessageBox.Show("Auf die Datenbank konnte nicht zugegriffen werden. Ein Fehlerbericht wurde an den Administrator gesendet.", "Fehler", MessageBoxButton.OK, MessageBoxImage.Error); } finally { if(sqlConn.State == ConnectionState.Open) { sqlConn.Close(); } } } }
private void RemovePoduct(object sender, RoutedEventArgs e) { var currentRow = (DataRowView)DgProducts.SelectedItem; DataRow selectedRow = currentRow.Row; MessageBoxResult removeQuestion = MessageBox.Show("Sind Sie sicher, dass das Produkt " + selectedRow["Produktname"] + " gelöscht werden soll?", "Produkt löschen", MessageBoxButton.YesNo, MessageBoxImage.Question); if (removeQuestion != MessageBoxResult.Yes) return; var connString = new SqlConnectionStringBuilder { DataSource = "localhost", InitialCatalog = "AMAM", IntegratedSecurity = true }; using (var sqlConn = new SqlConnection(connString.ToString())) { try { sqlConn.Open(); const string killFromProductNamesString = "DELETE FROM ProductNames WHERE Produktnummer = @paramProduktNummer"; var killFromProductNamesCommand = new SqlCommand(killFromProductNamesString, sqlConn); killFromProductNamesCommand.Parameters.Add(new SqlParameter("@paramProduktNummer", selectedRow["ProduktNummer"])); killFromProductNamesCommand.ExecuteNonQuery(); RefreshProductList(); } catch (SqlException ex) { var reporter = new ExceptionReporter(ex); reporter.ReportExceptionToAdmin(); MessageBox.Show( "Auf die Datenbank konnte nicht zugegriffen werden. Ein Fehlerbericht wurde an den Administrator gesendet.", "Fehler", MessageBoxButton.OK, MessageBoxImage.Error); } finally { if (sqlConn.State == ConnectionState.Open) { sqlConn.Close(); } } } }
private void ChangeDealer(object sender, RoutedEventArgs e) { var validator = new Validator(); TbDealer.Background = Brushes.White; TbDealer.Foreground = Brushes.Black; TbMail.Background = Brushes.White; TbMail.Foreground = Brushes.Black; TbCustomerId.Background = Brushes.White; TbCustomerId.Foreground = Brushes.Black; if(TbDealer.Text.Length > 0 && validator.IsMailValid(TbMail.Text) && TbCustomerId.Text.Length > 0) { var connString = new SqlConnectionStringBuilder { DataSource = "localhost", InitialCatalog = "AMAM", IntegratedSecurity = true }; using(var sqlConn = new SqlConnection(connString.ToString())) { try { sqlConn.Open(); var changeCommand = new SqlCommand("UPDATE Dealers SET " + "Vertrieb = @paramVertrieb, " + "eMail = @paramMail, " + "Kundennummer = @paramCustomerID " + "WHERE VertriebID = @paramPK", sqlConn); changeCommand.Parameters.Add(new SqlParameter("@paramVertrieb", TbDealer.Text)); changeCommand.Parameters.Add(new SqlParameter("@paramMail", TbMail.Text)); changeCommand.Parameters.Add(new SqlParameter("@paramCustomerID", TbCustomerId.Text)); changeCommand.Parameters.Add(new SqlParameter("@paramPK", _id)); changeCommand.ExecuteNonQuery(); Close(); } catch(SqlException ex) { var reporter = new ExceptionReporter(ex); reporter.ReportExceptionToAdmin(); MessageBox.Show("Auf die Datenbank konnte nicht zugegriffen werden. Ein Fehlerbericht wurde an den Administrator gesendet.", "Fehler", MessageBoxButton.OK, MessageBoxImage.Error); return; } finally { if(sqlConn.State == ConnectionState.Open) { sqlConn.Close(); } } } } if(TbDealer.Text.Length == 0) { TbDealer.Background = Brushes.Red; TbDealer.Foreground = Brushes.Black; MessageBox.Show("Sie müssen einen Vertriebspartner eingeben.", "Fehler", MessageBoxButton.OK, MessageBoxImage.Error); } if(!validator.IsMailValid(TbMail.Text)) { TbMail.Background = Brushes.Red; TbMail.Foreground = Brushes.Black; MessageBox.Show("Die eingegebene eMail-Adresse ist nicht gültig.", "Fehler", MessageBoxButton.OK, MessageBoxImage.Error); } if(TbCustomerId.Text.Length == 0) { TbCustomerId.Background = Brushes.Red; TbCustomerId.Foreground = Brushes.Black; MessageBox.Show("Sie müssen eine Kundennummer eingeben.", "Fehler", MessageBoxButton.OK, MessageBoxImage.Error); } }
private void ReadUnits() { CboPackageMass.Items.Clear(); var connString = new SqlConnectionStringBuilder { DataSource = "localhost", InitialCatalog = "AMAM", IntegratedSecurity = true }; using(var sqlConn = new SqlConnection(connString.ToString())) { try { sqlConn.Open(); if(Sqlhelper.TableExists(sqlConn, "Units")) { var dealerTable = new DataTable(); var dataAdapter = new SqlDataAdapter("SELECT EinheitID, Einheit FROM Units", sqlConn); dealerTable.Clear(); dataAdapter.Fill(dealerTable); CboPackageMass.ItemsSource = dealerTable.DefaultView; CboPackageMass.DisplayMemberPath = "Einheit"; CboPackageMass.SelectedValuePath = "Einheit"; CboPackageMass.SelectedIndex = 0; if(CboDealers.Items.Count == 0) { MessageBoxResult answer = MessageBox.Show("Es wurden keine Verpackungseinheiten gefunden. Möchten Sie jetzt eine neue Verpackungseinheit hinzufügen?", "Fehler", MessageBoxButton.YesNo, MessageBoxImage.Question); if(answer == MessageBoxResult.Yes) { var dealerManager = new FrmDealersList(); dealerManager.ShowDialog(); ReadDealers(); } } } else { MessageBoxResult answer = MessageBox.Show("Es wurden keine Verpackungseinheiten gefunden. Möchten Sie jetzt eine neue Verpackungseinheit hinzufügen?", "Fehler", MessageBoxButton.YesNo, MessageBoxImage.Question); if(answer == MessageBoxResult.Yes) { var dealerManager = new FrmDealersList(); dealerManager.ShowDialog(); ReadDealers(); } } } catch(SqlException ex) { var reporter = new ExceptionReporter(ex); reporter.ReportExceptionToAdmin(); MessageBox.Show("Auf die Datenbank konnte nicht zugegriffen werden. Ein Fehlerbericht wurde an den Administrator gesendet.", "Fehler", MessageBoxButton.OK, MessageBoxImage.Error); } finally { if(sqlConn.State == ConnectionState.Open) { sqlConn.Close(); } } } }
public FrmAddProduct() { InitializeComponent(); _productDataTable.Columns.Add(new DataColumn("VertriebID")); _productDataTable.Columns.Add(new DataColumn("Artikelnummer")); _productDataTable.Columns.Add(new DataColumn("Preis")); _productDataTable.Columns.Add(new DataColumn("Verpackungseinheit")); DgProductData.DataContext = _productDataTable.DefaultView; _productDataTable.PrimaryKey = new[] {_productDataTable.Columns["Artikelnummer"]}; DgProductData.SelectedValuePath = "Artikelnummer"; ReadDealers(); #region Tabellenexistenz sicherstellen var connString = new SqlConnectionStringBuilder { DataSource = "localhost", InitialCatalog = "AMAM", IntegratedSecurity = true }; using (var sqlConn = new SqlConnection(connString.ToString())) { try { sqlConn.Open(); if (!Sqlhelper.TableExists(sqlConn, "ProductNames")) { var newTable = new SqlCommand("CREATE TABLE ProductNames (Produktnummer int IDENTITY(1,1) PRIMARY KEY, " + "Produktname nvarchar(255) NOT NULL)", sqlConn); newTable.ExecuteNonQuery(); } if (!Sqlhelper.TableExists(sqlConn, "Units")) { var newTable = new SqlCommand("CREATE TABLE Units (EinheitID int IDENTITY(1,1) CONSTRAINT pkEinheitID PRIMARY KEY, " + "Einheit nvarchar(128) NOT NULL)", sqlConn); newTable.ExecuteNonQuery(); var newRow = new SqlCommand("INSERT INTO Units (Einheit) VALUES(@paramEinheit1), (@paramEinheit2), (@paramEinheit3)", sqlConn); newRow.Parameters.Add(new SqlParameter("@paramEinheit1", "Stück")); newRow.Parameters.Add(new SqlParameter("@paramEinheit2", "Packung")); newRow.Parameters.Add(new SqlParameter("@paramEinheit3", "Originalpackung")); newRow.ExecuteNonQuery(); } if (!Sqlhelper.TableExists(sqlConn, "ProductData")) { var newTable = new SqlCommand("CREATE TABLE ProductData (ProduktID int IDENTITY(1,1) CONSTRAINT pkProduktID PRIMARY KEY, " + "Produktnummer int NOT NULL CONSTRAINT fkProduktnummer FOREIGN KEY REFERENCES ProductNames(Produktnummer) ON DELETE CASCADE, " + "Artikelnummer nvarchar(255) NOT NULL, " + "VertriebID int NOT NULL CONSTRAINT fkVertriebID FOREIGN KEY REFERENCES Dealers(VertriebID) ON DELETE CASCADE, " + "Preis nvarchar(128) NOT NULL, " + "EinheitID int NOT NULL CONSTRAINT fkEinheitID FOREIGN KEY REFERENCES Units(EinheitID) ON DELETE CASCADE)", sqlConn); newTable.ExecuteNonQuery(); } } catch (SqlException ex) { var reporter = new ExceptionReporter(ex); reporter.ReportExceptionToAdmin(); MessageBox.Show( "Auf die Datenbank konnte nicht zugegriffen werden. Ein Fehlerbericht wurde an den Administrator gesendet.", "Fehler", MessageBoxButton.OK, MessageBoxImage.Error); } finally { if (sqlConn.State == ConnectionState.Open) { sqlConn.Close(); } } } #endregion ReadUnits(); }
private void AddProductNameToDataBase() { TbProductName.Background = Brushes.White; TbProductName.Foreground = Brushes.Black; if(TbProductName.Text.Length > 0) { var connString = new SqlConnectionStringBuilder { DataSource = "localhost", InitialCatalog = "AMAM", IntegratedSecurity = true }; using(var sqlConn = new SqlConnection(connString.ToString())) { try { sqlConn.Open(); var newRow = new SqlCommand("INSERT INTO ProductNames (Produktname) VALUES(@paramName)", sqlConn); newRow.Parameters.Add(new SqlParameter("@paramName", TbProductName.Text)); newRow.ExecuteNonQuery(); } catch(SqlException ex) { var reporter = new ExceptionReporter(ex); reporter.ReportExceptionToAdmin(); MessageBox.Show("Auf die Datenbank konnte nicht zugegriffen werden. Ein Fehlerbericht wurde an den Administrator gesendet.", "Fehler", MessageBoxButton.OK, MessageBoxImage.Error); } finally { if(sqlConn.State == ConnectionState.Open) { sqlConn.Close(); } } } } else { MessageBox.Show("Sie müssen einen Produktnamen eingeben.", "Fehler", MessageBoxButton.OK, MessageBoxImage.Error); TbProductName.Background = Brushes.Red; TbProductName.Foreground = Brushes.Black; } }
private void AddProductDataToDataBase() { var connString = new SqlConnectionStringBuilder { DataSource = "localhost", InitialCatalog = "AMAM", IntegratedSecurity = true }; using(var sqlConn = new SqlConnection(connString.ToString())) { try { sqlConn.Open(); var newRow = new SqlCommand("INSERT INTO ProductData (Produktnummer, Artikelnummer, VertriebID, Preis, EinheitID) " + "VALUES((SELECT Produktnummer FROM ProductNames WHERE ProductNames.Produktname = @paramName), " + "@paramArtikelnummer, " + "(SELECT VertriebID FROM Dealers WHERE Dealers.VertriebID = @paramVertriebID), " + "@paramPreis, "+ "(SELECT EinheitID FROM Units WHERE Units.Einheit = @paramEinheit))", sqlConn); foreach(DataRow row in _productDataTable.Rows) { newRow.Parameters.Add(new SqlParameter("@paramName", TbProductName.Text)); newRow.Parameters.Add(new SqlParameter("@paramArtikelnummer", row["Artikelnummer"])); newRow.Parameters.Add(new SqlParameter("@paramVertriebID", row["VertriebID"])); newRow.Parameters.Add(new SqlParameter("@paramPreis", row["Preis"])); newRow.Parameters.Add(new SqlParameter("@paramEinheit", row["Verpackungseinheit"])); newRow.ExecuteNonQuery(); newRow.Parameters.Clear(); } } catch(SqlException ex) { var reporter = new ExceptionReporter(ex); reporter.ReportExceptionToAdmin(); MessageBox.Show("Auf die Datenbank konnte nicht zugegriffen werden. Ein Fehlerbericht wurde an den Administrator gesendet.", "Fehler", MessageBoxButton.OK, MessageBoxImage.Error); } finally { if(sqlConn.State == ConnectionState.Open) { sqlConn.Close(); } } } }
/// <summary> /// Methode zum Laden der User-Daten in die Form /// </summary> private void InitUserTable() { CboUsername.Items.Clear(); var xmlFile = XmlReader.Create(_xmlPath, new XmlReaderSettings()); try { if(_ds.Tables.Count > 0) { CboUsername.ItemsSource = _ds.Tables["user"].DefaultView; CboUsername.SelectedIndex = 0; } else { _ds.ReadXml(xmlFile); xmlFile.Close(); if(_ds.Tables.Count > 0) { CboUsername.ItemsSource = _ds.Tables["user"].DefaultView; CboUsername.SelectedIndex = 0; } } } catch(XmlException ex) { MessageBox.Show("Die Benutzerdatenbank ist korrupt. Es wird nun eine neue Benutzerdatenbank angelegt." + Environment.NewLine + Environment.NewLine + "Die korrupte Benutzerdatenbank wird gesichert und der Administrator per eMail kontaktiert. Bitte einen Moment Geduld.", "Fehler", MessageBoxButton.OK, MessageBoxImage.Error); File.Move(_xmlPath, _xmlPath + ".corrupt"); File.Delete(_xmlPath); _initxml.CreateXMLFileStructure("users"); var exReport = new ExceptionReporter(ex); exReport.ReportExceptionToAdmin(_xmlPath + ".corrupt"); } if(!CboUsername.HasItems) { MessageBoxResult messageResult = MessageBox.Show("Die Benutzerdatenbank enthält keinen Benutzer." + Environment.NewLine + "Sie müssen nun einen Benutzer anlegen um fortfahren zu können.", "Fehler", MessageBoxButton.OKCancel, MessageBoxImage.Error); if(messageResult == MessageBoxResult.OK) { var addUser = new FrmAddUser(_ds); addUser.ShowDialog(); _ds.WriteXml(_xmlPath); CboUsername.ItemsSource = _ds.Tables["user"].DefaultView; CboUsername.SelectedIndex = 0; } else { Environment.Exit(1); } } }