Projektdateien hinzufügen.

This commit is contained in:
Christopher Meinhold 2024-08-28 11:03:48 +02:00
parent 0e2a50ef8b
commit ac93a0305a
9 changed files with 996 additions and 0 deletions

25
Firmendatenbank.sln Normal file
View File

@ -0,0 +1,25 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.10.35122.118
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Firmendatenbank", "Firmendatenbank\Firmendatenbank.csproj", "{8D75A6EB-1A3A-486E-8E0E-DE3BF99D4528}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{8D75A6EB-1A3A-486E-8E0E-DE3BF99D4528}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8D75A6EB-1A3A-486E-8E0E-DE3BF99D4528}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8D75A6EB-1A3A-486E-8E0E-DE3BF99D4528}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8D75A6EB-1A3A-486E-8E0E-DE3BF99D4528}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {58080282-C549-4218-8D12-FD1BAE26A1AA}
EndGlobalSection
EndGlobal

81
Firmendatenbank/CRMForm.Designer.cs generated Normal file
View File

@ -0,0 +1,81 @@
namespace Firmendatenbank
{
partial class CRMForm
{
private System.ComponentModel.IContainer components = null;
private System.Windows.Forms.DataGridView dataGridViewNotes;
private System.Windows.Forms.TextBox txtNote;
private System.Windows.Forms.Button btnAddNote;
private System.Windows.Forms.Label lblNote;
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
private void InitializeComponent()
{
dataGridViewNotes = new DataGridView();
txtNote = new TextBox();
btnAddNote = new Button();
lblNote = new Label();
((System.ComponentModel.ISupportInitialize)dataGridViewNotes).BeginInit();
SuspendLayout();
//
// dataGridViewNotes
//
dataGridViewNotes.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
dataGridViewNotes.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
dataGridViewNotes.Location = new Point(12, 12);
dataGridViewNotes.Name = "dataGridViewNotes";
dataGridViewNotes.Size = new Size(500, 200);
dataGridViewNotes.TabIndex = 0;
//
// txtNote
//
txtNote.Location = new Point(12, 230);
txtNote.Multiline = true;
txtNote.Name = "txtNote";
txtNote.Size = new Size(500, 80);
txtNote.TabIndex = 1;
//
// btnAddNote
//
btnAddNote.Location = new Point(412, 330);
btnAddNote.Name = "btnAddNote";
btnAddNote.Size = new Size(100, 30);
btnAddNote.TabIndex = 2;
btnAddNote.Text = "Notiz hinzufügen";
btnAddNote.UseVisualStyleBackColor = true;
btnAddNote.Click += btnAddNote_Click;
//
// lblNote
//
lblNote.AutoSize = true;
lblNote.Location = new Point(12, 210);
lblNote.Name = "lblNote";
lblNote.Size = new Size(38, 15);
lblNote.TabIndex = 3;
lblNote.Text = "Notiz:";
//
// CRMForm
//
ClientSize = new Size(524, 380);
Controls.Add(lblNote);
Controls.Add(btnAddNote);
Controls.Add(txtNote);
Controls.Add(dataGridViewNotes);
Name = "CRMForm";
Text = "CRM - Notizen verwalten";
Shown += CRMForm_Shown;
KeyDown += CRMForm_KeyDown;
((System.ComponentModel.ISupportInitialize)dataGridViewNotes).EndInit();
ResumeLayout(false);
PerformLayout();
}
}
}

109
Firmendatenbank/CRMForm.cs Normal file
View File

@ -0,0 +1,109 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using MySql.Data.MySqlClient;
namespace Firmendatenbank
{
public partial class CRMForm : Form
{
private MySqlConnection connection;
private string domain;
private string connectionString = "Server=192.168.178.201;Database=domainchecker;User ID=root;Password=1td5rugut8;";
// Konstruktor
public CRMForm(string domain)
{
InitializeComponent();
this.domain = domain;
InitializeDatabaseConnection();
LoadNotes();
this.KeyPreview = true; // Damit das Formular Tastatureingaben empfangen kann
this.KeyDown += new KeyEventHandler(CRMForm_KeyDown);
}
private void InitializeDatabaseConnection()
{
//string connectionString = "Server=your_server;Database=your_database;Uid=your_username;Pwd=your_password;";
connection = new MySqlConnection(connectionString);
}
private void LoadNotes()
{
DataTable dataTable = new DataTable();
try
{
connection.Open();
string query = "SELECT zeitstempel, notiz FROM crm_notizen WHERE domain = @domain ORDER BY zeitstempel DESC";
MySqlCommand cmd = new MySqlCommand(query, connection);
cmd.Parameters.AddWithValue("@domain", domain);
MySqlDataAdapter adapter = new MySqlDataAdapter(cmd);
adapter.Fill(dataTable);
connection.Close();
}
catch (Exception ex)
{
MessageBox.Show("Fehler beim Laden der Notizen: " + ex.Message);
}
finally
{
if (connection.State == System.Data.ConnectionState.Open)
{
connection.Close();
}
}
dataGridViewNotes.DataSource = dataTable;
}
private void btnAddNote_Click(object sender, EventArgs e)
{
try
{
connection.Open();
string query = "INSERT INTO crm_notizen (domain, notiz) VALUES (@domain, @notiz)";
MySqlCommand cmd = new MySqlCommand(query, connection);
cmd.Parameters.AddWithValue("@domain", domain);
cmd.Parameters.AddWithValue("@notiz", txtNote.Text);
cmd.ExecuteNonQuery();
//MessageBox.Show("Notiz erfolgreich hinzugefügt.");
txtNote.Text = ""; // Textbox leeren
connection.Close();
LoadNotes(); // Aktualisiere die Liste der Notizen
}
catch (Exception ex)
{
MessageBox.Show("Fehler beim Hinzufügen der Notiz: " + ex.Message);
}
finally
{
if (connection.State == System.Data.ConnectionState.Open)
{
connection.Close();
}
}
}
private void CRMForm_Shown(object sender, EventArgs e)
{
txtNote.Focus();
}
private void CRMForm_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Escape)
{
this.Close(); // Schließt das Formular, wenn die Escape-Taste gedrückt wird
}
}
}
}

View File

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@ -0,0 +1,16 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net8.0-windows</TargetFramework>
<Nullable>enable</Nullable>
<UseWindowsForms>true</UseWindowsForms>
<ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="DevExpress.Win.Design" Version="22.2.3" />
<PackageReference Include="MySql.Data" Version="9.0.0" />
</ItemGroup>
</Project>

338
Firmendatenbank/Form1.Designer.cs generated Normal file
View File

@ -0,0 +1,338 @@
using System.Media;
namespace Firmendatenbank
{
partial class Form1
{
private System.ComponentModel.IContainer components = null;
private System.Windows.Forms.TextBox txtFirmenname;
private System.Windows.Forms.TextBox txtMailadresse;
private System.Windows.Forms.TextBox txtAdresse;
private System.Windows.Forms.TextBox txtPlz;
private System.Windows.Forms.TextBox txtOrt;
private System.Windows.Forms.TextBox txtTelefonnummer;
private System.Windows.Forms.TextBox txtAnsprechpartner;
private System.Windows.Forms.Button btnSave;
private System.Windows.Forms.TextBox txtDomain;
private System.Windows.Forms.Label lblFirmenname;
private System.Windows.Forms.Label lblMailadresse;
private System.Windows.Forms.Label lblAdresse;
private System.Windows.Forms.Label lblPlz;
private System.Windows.Forms.Label lblOrt;
private System.Windows.Forms.Label lblTelefonnummer;
private System.Windows.Forms.Label lblAnsprechpartner;
private System.Windows.Forms.Label lblStatus;
private System.Windows.Forms.Label lblDomain;
private System.Windows.Forms.Button btnCRM;
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
private void InitializeComponent()
{
txtFirmenname = new TextBox();
txtMailadresse = new TextBox();
txtAdresse = new TextBox();
txtPlz = new TextBox();
txtOrt = new TextBox();
txtTelefonnummer = new TextBox();
txtAnsprechpartner = new TextBox();
btnSave = new Button();
txtDomain = new TextBox();
lblFirmenname = new Label();
lblMailadresse = new Label();
lblAdresse = new Label();
lblPlz = new Label();
lblOrt = new Label();
lblTelefonnummer = new Label();
lblAnsprechpartner = new Label();
lblStatus = new Label();
lblDomain = new Label();
btnCRM = new Button();
tableLayoutPanel1 = new TableLayoutPanel();
txtStatus = new TextBox();
dataGridViewWpVersionen = new DataGridView();
tableLayoutPanel1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)dataGridViewWpVersionen).BeginInit();
SuspendLayout();
//
// txtFirmenname
//
txtFirmenname.Dock = DockStyle.Fill;
txtFirmenname.Location = new Point(126, 368);
txtFirmenname.Margin = new Padding(4, 3, 4, 3);
txtFirmenname.Name = "txtFirmenname";
txtFirmenname.Size = new Size(269, 23);
txtFirmenname.TabIndex = 1;
//
// txtMailadresse
//
txtMailadresse.Dock = DockStyle.Fill;
txtMailadresse.Location = new Point(126, 398);
txtMailadresse.Margin = new Padding(4, 3, 4, 3);
txtMailadresse.Name = "txtMailadresse";
txtMailadresse.Size = new Size(269, 23);
txtMailadresse.TabIndex = 2;
//
// txtAdresse
//
txtAdresse.Dock = DockStyle.Fill;
txtAdresse.Location = new Point(126, 428);
txtAdresse.Margin = new Padding(4, 3, 4, 3);
txtAdresse.Name = "txtAdresse";
txtAdresse.Size = new Size(269, 23);
txtAdresse.TabIndex = 3;
//
// txtPlz
//
txtPlz.Dock = DockStyle.Fill;
txtPlz.Location = new Point(126, 458);
txtPlz.Margin = new Padding(4, 3, 4, 3);
txtPlz.Name = "txtPlz";
txtPlz.Size = new Size(269, 23);
txtPlz.TabIndex = 4;
//
// txtOrt
//
txtOrt.Dock = DockStyle.Fill;
txtOrt.Location = new Point(126, 488);
txtOrt.Margin = new Padding(4, 3, 4, 3);
txtOrt.Name = "txtOrt";
txtOrt.Size = new Size(269, 23);
txtOrt.TabIndex = 5;
//
// txtTelefonnummer
//
txtTelefonnummer.Dock = DockStyle.Fill;
txtTelefonnummer.Location = new Point(126, 518);
txtTelefonnummer.Margin = new Padding(4, 3, 4, 3);
txtTelefonnummer.Name = "txtTelefonnummer";
txtTelefonnummer.Size = new Size(269, 23);
txtTelefonnummer.TabIndex = 6;
//
// txtAnsprechpartner
//
txtAnsprechpartner.Dock = DockStyle.Fill;
txtAnsprechpartner.Location = new Point(126, 548);
txtAnsprechpartner.Margin = new Padding(4, 3, 4, 3);
txtAnsprechpartner.Name = "txtAnsprechpartner";
txtAnsprechpartner.Size = new Size(269, 23);
txtAnsprechpartner.TabIndex = 7;
//
// btnSave
//
btnSave.Dock = DockStyle.Fill;
btnSave.Location = new Point(403, 578);
btnSave.Margin = new Padding(4, 3, 4, 3);
btnSave.Name = "btnSave";
btnSave.Size = new Size(118, 24);
btnSave.TabIndex = 9;
btnSave.Text = "Speichern";
btnSave.UseVisualStyleBackColor = true;
btnSave.Click += btnSave_Click;
//
// txtDomain
//
txtDomain.Dock = DockStyle.Fill;
txtDomain.Location = new Point(126, 608);
txtDomain.Margin = new Padding(4, 3, 4, 3);
txtDomain.Name = "txtDomain";
txtDomain.ReadOnly = true;
txtDomain.Size = new Size(269, 23);
txtDomain.TabIndex = 10;
//
// lblFirmenname
//
lblFirmenname.AutoSize = true;
lblFirmenname.Location = new Point(4, 365);
lblFirmenname.Margin = new Padding(4, 0, 4, 0);
lblFirmenname.Name = "lblFirmenname";
lblFirmenname.Size = new Size(77, 15);
lblFirmenname.TabIndex = 11;
lblFirmenname.Text = "Firmenname:";
//
// lblMailadresse
//
lblMailadresse.AutoSize = true;
lblMailadresse.Location = new Point(4, 395);
lblMailadresse.Margin = new Padding(4, 0, 4, 0);
lblMailadresse.Name = "lblMailadresse";
lblMailadresse.Size = new Size(72, 15);
lblMailadresse.TabIndex = 12;
lblMailadresse.Text = "Mailadresse:";
//
// lblAdresse
//
lblAdresse.AutoSize = true;
lblAdresse.Location = new Point(4, 425);
lblAdresse.Margin = new Padding(4, 0, 4, 0);
lblAdresse.Name = "lblAdresse";
lblAdresse.Size = new Size(51, 15);
lblAdresse.TabIndex = 13;
lblAdresse.Text = "Adresse:";
//
// lblPlz
//
lblPlz.AutoSize = true;
lblPlz.Location = new Point(4, 455);
lblPlz.Margin = new Padding(4, 0, 4, 0);
lblPlz.Name = "lblPlz";
lblPlz.Size = new Size(30, 15);
lblPlz.TabIndex = 14;
lblPlz.Text = "PLZ:";
//
// lblOrt
//
lblOrt.AutoSize = true;
lblOrt.Location = new Point(4, 485);
lblOrt.Margin = new Padding(4, 0, 4, 0);
lblOrt.Name = "lblOrt";
lblOrt.Size = new Size(27, 15);
lblOrt.TabIndex = 15;
lblOrt.Text = "Ort:";
//
// lblTelefonnummer
//
lblTelefonnummer.AutoSize = true;
lblTelefonnummer.Location = new Point(4, 515);
lblTelefonnummer.Margin = new Padding(4, 0, 4, 0);
lblTelefonnummer.Name = "lblTelefonnummer";
lblTelefonnummer.Size = new Size(94, 15);
lblTelefonnummer.TabIndex = 16;
lblTelefonnummer.Text = "Telefonnummer:";
//
// lblAnsprechpartner
//
lblAnsprechpartner.AutoSize = true;
lblAnsprechpartner.Location = new Point(4, 545);
lblAnsprechpartner.Margin = new Padding(4, 0, 4, 0);
lblAnsprechpartner.Name = "lblAnsprechpartner";
lblAnsprechpartner.Size = new Size(98, 15);
lblAnsprechpartner.TabIndex = 17;
lblAnsprechpartner.Text = "Ansprechpartner:";
//
// lblStatus
//
lblStatus.AutoSize = true;
lblStatus.Location = new Point(4, 575);
lblStatus.Margin = new Padding(4, 0, 4, 0);
lblStatus.Name = "lblStatus";
lblStatus.Size = new Size(42, 15);
lblStatus.TabIndex = 18;
lblStatus.Text = "Status:";
//
// lblDomain
//
lblDomain.AutoSize = true;
lblDomain.Location = new Point(4, 605);
lblDomain.Margin = new Padding(4, 0, 4, 0);
lblDomain.Name = "lblDomain";
lblDomain.Size = new Size(52, 15);
lblDomain.TabIndex = 19;
lblDomain.Text = "Domain:";
lblDomain.Click += lblDomain_Click;
//
// btnCRM
//
btnCRM.Dock = DockStyle.Fill;
btnCRM.Location = new Point(403, 608);
btnCRM.Margin = new Padding(4, 3, 4, 3);
btnCRM.Name = "btnCRM";
btnCRM.Size = new Size(118, 24);
btnCRM.TabIndex = 20;
btnCRM.Text = "CRM";
btnCRM.UseVisualStyleBackColor = true;
btnCRM.Click += btnCRM_Click;
//
// tableLayoutPanel1
//
tableLayoutPanel1.ColumnCount = 4;
tableLayoutPanel1.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 122F));
tableLayoutPanel1.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 277F));
tableLayoutPanel1.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 19.5084476F));
tableLayoutPanel1.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 80.4915543F));
tableLayoutPanel1.Controls.Add(txtStatus, 1, 8);
tableLayoutPanel1.Controls.Add(lblDomain, 0, 9);
tableLayoutPanel1.Controls.Add(lblStatus, 0, 8);
tableLayoutPanel1.Controls.Add(btnCRM, 2, 9);
tableLayoutPanel1.Controls.Add(lblAnsprechpartner, 0, 7);
tableLayoutPanel1.Controls.Add(txtDomain, 1, 9);
tableLayoutPanel1.Controls.Add(lblTelefonnummer, 0, 6);
tableLayoutPanel1.Controls.Add(btnSave, 2, 8);
tableLayoutPanel1.Controls.Add(lblOrt, 0, 5);
tableLayoutPanel1.Controls.Add(lblPlz, 0, 4);
tableLayoutPanel1.Controls.Add(txtAnsprechpartner, 1, 7);
tableLayoutPanel1.Controls.Add(lblAdresse, 0, 3);
tableLayoutPanel1.Controls.Add(txtTelefonnummer, 1, 6);
tableLayoutPanel1.Controls.Add(lblMailadresse, 0, 2);
tableLayoutPanel1.Controls.Add(txtOrt, 1, 5);
tableLayoutPanel1.Controls.Add(lblFirmenname, 0, 1);
tableLayoutPanel1.Controls.Add(txtPlz, 1, 4);
tableLayoutPanel1.Controls.Add(txtFirmenname, 1, 1);
tableLayoutPanel1.Controls.Add(txtMailadresse, 1, 2);
tableLayoutPanel1.Controls.Add(txtAdresse, 1, 3);
tableLayoutPanel1.Controls.Add(dataGridViewWpVersionen, 0, 0);
tableLayoutPanel1.Dock = DockStyle.Fill;
tableLayoutPanel1.Location = new Point(0, 0);
tableLayoutPanel1.Name = "tableLayoutPanel1";
tableLayoutPanel1.RowCount = 10;
tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Absolute, 30F));
tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Absolute, 30F));
tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Absolute, 30F));
tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Absolute, 30F));
tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Absolute, 30F));
tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Absolute, 30F));
tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Absolute, 30F));
tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Absolute, 30F));
tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Absolute, 30F));
tableLayoutPanel1.Size = new Size(1050, 635);
tableLayoutPanel1.TabIndex = 21;
//
// txtStatus
//
txtStatus.Dock = DockStyle.Fill;
txtStatus.Location = new Point(126, 578);
txtStatus.Margin = new Padding(4, 3, 4, 3);
txtStatus.Name = "txtStatus";
txtStatus.Size = new Size(269, 23);
txtStatus.TabIndex = 22;
//
// dataGridViewWpVersionen
//
dataGridViewWpVersionen.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
tableLayoutPanel1.SetColumnSpan(dataGridViewWpVersionen, 4);
dataGridViewWpVersionen.Dock = DockStyle.Fill;
dataGridViewWpVersionen.Location = new Point(3, 3);
dataGridViewWpVersionen.Name = "dataGridViewWpVersionen";
dataGridViewWpVersionen.Size = new Size(1044, 359);
dataGridViewWpVersionen.TabIndex = 24;
dataGridViewWpVersionen.CellClick += dataGridViewWpVersionen_CellClick;
//
// Form1
//
AutoScaleDimensions = new SizeF(7F, 15F);
AutoScaleMode = AutoScaleMode.Font;
ClientSize = new Size(1050, 635);
Controls.Add(tableLayoutPanel1);
Margin = new Padding(4, 3, 4, 3);
Name = "Form1";
Text = "Firmendaten verwalten";
WindowState = FormWindowState.Maximized;
tableLayoutPanel1.ResumeLayout(false);
tableLayoutPanel1.PerformLayout();
((System.ComponentModel.ISupportInitialize)dataGridViewWpVersionen).EndInit();
ResumeLayout(false);
}
private TableLayoutPanel tableLayoutPanel1;
private TextBox txtStatus;
private DataGridView dataGridViewWpVersionen;
}
}

170
Firmendatenbank/Form1.cs Normal file
View File

@ -0,0 +1,170 @@
using MySql.Data.MySqlClient;
using System.Data;
using System.Diagnostics;
using System.Windows.Forms;
namespace Firmendatenbank
{
public partial class Form1 : Form
{
private string connectionString = "Server=192.168.178.201;Database=domainchecker;User ID=root;Password=1td5rugut8;";
public Form1()
{
InitializeComponent();
LoadWpVersionen();
dataGridViewWpVersionen.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
}
private void LoadWpVersionen()
{
string query = @"SELECT wp.domain, wp.version, wp.letzte_pruefung, wp.cms_name,
COALESCE(fd.status, '') AS status
FROM wp_versionen wp
LEFT JOIN firmendaten fd ON wp.domain = fd.domain
ORDER BY wp.version ASC";
DataTable dt = new DataTable();
using (MySqlConnection connection = new MySqlConnection(connectionString))
{
MySqlCommand cmd = new MySqlCommand(query, connection);
connection.Open();
using (MySqlDataReader reader = cmd.ExecuteReader())
{
dt.Load(reader);
}
}
dataGridViewWpVersionen.DataSource = dt;
}
private void dataGridViewWpVersionen_CellClick(object sender, DataGridViewCellEventArgs e)
{
DataGridViewRow row = dataGridViewWpVersionen.Rows[e.RowIndex];
txtDomain.Text = row.Cells["domain"].Value.ToString();
txtStatus.Text = row.Cells["status"].Value.ToString();
// Lade bestehende Firmendaten
LoadFirmendaten(txtDomain.Text);
}
private void LoadFirmendaten(string domain)
{
string query = "SELECT * FROM firmendaten WHERE domain = @domain";
using (MySqlConnection connection = new MySqlConnection(connectionString))
{
MySqlCommand cmd = new MySqlCommand(query, connection);
cmd.Parameters.AddWithValue("@domain", domain);
connection.Open();
using (MySqlDataReader reader = cmd.ExecuteReader())
{
if (reader.Read())
{
txtFirmenname.Text = reader["firmenname"].ToString();
txtMailadresse.Text = reader["mailadresse"].ToString();
txtAdresse.Text = reader["adresse"].ToString();
txtPlz.Text = reader["plz"].ToString();
txtOrt.Text = reader["ort"].ToString();
txtTelefonnummer.Text = reader["telefonnummer"].ToString();
txtAnsprechpartner.Text = reader["ansprechpartner"].ToString();
txtStatus.Text = reader["status"].ToString();
}
else
{
// Felder leeren, wenn keine Daten gefunden wurden
txtFirmenname.Clear();
txtMailadresse.Clear();
txtAdresse.Clear();
txtPlz.Clear();
txtOrt.Clear();
txtTelefonnummer.Clear();
txtAnsprechpartner.Clear();
txtStatus.Clear();
}
}
}
}
private void btnSave_Click(object sender, EventArgs e)
{
string domain = txtDomain.Text;
string selectQuery = "SELECT COUNT(*) FROM firmendaten WHERE domain = @domain";
string insertQuery = @"INSERT INTO firmendaten (firmenname, domain, mailadresse, adresse, plz, ort, telefonnummer, ansprechpartner, status)
VALUES (@firmenname, @domain, @mailadresse, @adresse, @plz, @ort, @telefonnummer, @ansprechpartner, @status)";
string updateQuery = @"UPDATE firmendaten SET firmenname=@firmenname, mailadresse=@mailadresse, adresse=@adresse, plz=@plz, ort=@ort,
telefonnummer=@telefonnummer, ansprechpartner=@ansprechpartner, status=@status WHERE domain=@domain";
using (MySqlConnection connection = new MySqlConnection(connectionString))
{
connection.Open();
MySqlCommand selectCmd = new MySqlCommand(selectQuery, connection);
selectCmd.Parameters.AddWithValue("@domain", domain);
int count = Convert.ToInt32(selectCmd.ExecuteScalar());
MySqlCommand cmd;
if (count > 0)
{
// Update bestehender Daten
cmd = new MySqlCommand(updateQuery, connection);
}
else
{
// Insert neuer Daten
cmd = new MySqlCommand(insertQuery, connection);
}
cmd.Parameters.AddWithValue("@firmenname", txtFirmenname.Text);
cmd.Parameters.AddWithValue("@domain", domain);
cmd.Parameters.AddWithValue("@mailadresse", txtMailadresse.Text);
cmd.Parameters.AddWithValue("@adresse", txtAdresse.Text);
cmd.Parameters.AddWithValue("@plz", txtPlz.Text);
cmd.Parameters.AddWithValue("@ort", txtOrt.Text);
cmd.Parameters.AddWithValue("@telefonnummer", txtTelefonnummer.Text);
cmd.Parameters.AddWithValue("@ansprechpartner", txtAnsprechpartner.Text);
cmd.Parameters.AddWithValue("@status", txtStatus.Text);
cmd.ExecuteNonQuery();
}
//MessageBox.Show("Daten erfolgreich gespeichert!", "Erfolg", MessageBoxButtons.OK, MessageBoxIcon.Information);
// Aktualisiere das DataGridView nach dem Speichern
RefreshGridView();
}
private void RefreshGridView()
{
dataGridViewWpVersionen.DataSource = null;
LoadWpVersionen();
}
private void btnCRM_Click(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(txtDomain.Text))
{
CRMForm crmForm = new CRMForm(txtDomain.Text);
crmForm.Show();
}
else
{
MessageBox.Show("Bitte wählen Sie eine Domain aus, bevor Sie das CRM öffnen.");
}
}
private void lblDomain_Click(object sender, EventArgs e)
{
string url = txtDomain.Text;
string chromePath = @"C:\Program Files\Google\Chrome\Application\chrome.exe";
// Öffne die URL mit Google Chrome
Process.Start(new ProcessStartInfo
{
FileName = chromePath,
Arguments = url,
UseShellExecute = false
});
}
}
}

120
Firmendatenbank/Form1.resx Normal file
View File

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@ -0,0 +1,17 @@
namespace Firmendatenbank
{
internal static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
// To customize application configuration such as set high DPI settings or default font,
// see https://aka.ms/applicationconfiguration.
ApplicationConfiguration.Initialize();
Application.Run(new Form1());
}
}
}