App installieren
How to install the app on iOS
Follow along with the video below to see how to install our site as a web app on your home screen.
Anmerkung: This feature may not be available in some browsers.
Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden.
Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
C# - Verbindung mit mySQL datenbank
- Ersteller regenschirm
- Erstellt am
regenschirm
Cadet
- Mitglied seit
- 02.10.2009
- Beiträge
- 7
- Renomée
- 0
Hallo
Ich habe folgendes Problem. Ich möchte ein Programm in C# schreiben (Formanwendung), mit dem ich Daten aus eine SQL-Datenbank auslesen, einschreiben und ändern möchte. Ich hab mich schon grün und blau gegoogelt und komme einfach nicht weiter.
Mit SQL selbst habe ich schon in php gearbeitet. C# grob verstehe ich auch.
Die Datenbank habe ich bereits in XAMPP erstellt, aber es will einfach nicht klappen.
Habt ihr vielleicht Tipps für mich?
Danke schon mal, jeder kleine Tipp hilft mir
Ich habe folgendes Problem. Ich möchte ein Programm in C# schreiben (Formanwendung), mit dem ich Daten aus eine SQL-Datenbank auslesen, einschreiben und ändern möchte. Ich hab mich schon grün und blau gegoogelt und komme einfach nicht weiter.
Mit SQL selbst habe ich schon in php gearbeitet. C# grob verstehe ich auch.
Die Datenbank habe ich bereits in XAMPP erstellt, aber es will einfach nicht klappen.
Habt ihr vielleicht Tipps für mich?
Danke schon mal, jeder kleine Tipp hilft mir
Devastators
Grand Admiral Special
- Mitglied seit
- 03.06.2001
- Beiträge
- 17.242
- Renomée
- 149
- Standort
- Bochum
- Mein Laptop
- Acer 8730 & 3810T & VN7 791G
- Prozessor
- Intel Q9550
- Mainboard
- -
- Kühlung
- Arctic Freezer 7 Pro
- Speicher
- 4* 1 Gig DC
- Grafikprozessor
- Asus GTX 750TI
- Display
- Asus VW246H 24" FHD
- SSD
- Samsung 850 EVO
- HDD
- 2 * Sata Maxtor 200GB 1 * WD 250 Gig IDE
- Optisches Laufwerk
- Plextor PX750A
- Soundkarte
- -
- Gehäuse
- Antec P180
- Netzteil
- BeQuiet 450Watt Straight Power
- Betriebssystem
- Win7 64
- Webbrowser
- IExplorer 8
- Verschiedenes
- DigiCam: Canon EOS 300D, Canon 50D , Beamer: SanyoZ3 , Camcorder: Canon HF200 HD , PS3 , Wii
- Mitglied seit
- 16.11.2001
- Beiträge
- 21.664
- Renomée
- 1.247
- Standort
- München
- Aktuelle Projekte
- World Community Grid
- Lieblingsprojekt
- Folding@Home
- Meine Systeme
- AMD Ryzen 9 5950X
- BOINC-Statistiken
- Folding@Home-Statistiken
- Prozessor
- AMD Ryzen 9 5950X
- Mainboard
- ASUS TUF Gaming X570-Pro [WI-FI]
- Kühlung
- be quiet! Shadow Rock 3
- Speicher
- 4x 16GB DDR4-3200 Corsair Vengeance LPX
- Grafikprozessor
- ASRock Radeon RX 550 Phantom Gaming Aktiv 2GB
- Display
- LG 27UL850-W, 27"
- SSD
- Samsung 980 PRO 2TB, Samsung 840 EVO 500GB
- HDD
- Seagate Barracuda 7200.14 3TB SATA3
- Optisches Laufwerk
- Samsung SH-S183A SATA schwarz (im externen Gehäuse)
- Gehäuse
- be quiet! Silent Base 802 schwarz
- Netzteil
- be quiet! Straight Power 11 Platinum 550W
- Tastatur
- Logitech G613 Lightspeed
- Maus
- Logitech M510
- Betriebssystem
- Ubuntu Linux 22.04
- Webbrowser
- Vivaldi
- Internetanbindung
-
▼100 MBit
▲40 MBit
Ich hab damals den MySQL .NET Connector verwendet: http://dev.mysql.com/downloads/connector/net/6.1.html
Musst aber mit den Lizenzen aufpassen, der Connector steht prinzipiell erstmal unter der GPL.
Musst aber mit den Lizenzen aufpassen, der Connector steht prinzipiell erstmal unter der GPL.
regenschirm
Cadet
- Mitglied seit
- 02.10.2009
- Beiträge
- 7
- Renomée
- 0
Danke TiKu, mit dem .NET Connector klappt die Verbindung einwandfrei. Ich kann verbinden und auslesen. Für die Verwendung des Connectors hab ich eine super "Beschreibung" gefunden.
httx://wwx.codeplanet.eu/tutorials/csharp/5-verbindung-zum-mysql-server-mit-csharp.html
Jetzt möchte ich allerdings etwas anhängen, die Werte aber aus einer Textbox auslesen. Sobald in der Textbox keine Zahl steht, meldet der Debugger einen Fehler bei "myCommand.ExecuteNonQuery();". Zahlen werden problemlos angehängt.
Ich hab den INSERT schon mit den verschiedensten Varianten probiert.
string abfrage = "INSERT INTO kunden (Vorname, Nachname) VALUES (" + txtVorname.Text + "," + txtNachname.Text + ")";
string abfrage = "INSERT INTO kunden (Vorname, Nachname) VALUES ( 'txtVorname.Text', 'txtNachname.Text')"; //in der Datenbank steht dann "txtVorname.Text' anstelle des Wertes aus der Textbox
etc.
Ich finde einfach keine Lösung, womit ich den ExecuteNonQuery ersetzten kann, damit Text ausgelesen und eingetragen wird.
Vielleicht habt Ihr eine Idee für mich
Danke schon mal
httx://wwx.codeplanet.eu/tutorials/csharp/5-verbindung-zum-mysql-server-mit-csharp.html
Jetzt möchte ich allerdings etwas anhängen, die Werte aber aus einer Textbox auslesen. Sobald in der Textbox keine Zahl steht, meldet der Debugger einen Fehler bei "myCommand.ExecuteNonQuery();". Zahlen werden problemlos angehängt.
Ich hab den INSERT schon mit den verschiedensten Varianten probiert.
string abfrage = "INSERT INTO kunden (Vorname, Nachname) VALUES (" + txtVorname.Text + "," + txtNachname.Text + ")";
string abfrage = "INSERT INTO kunden (Vorname, Nachname) VALUES ( 'txtVorname.Text', 'txtNachname.Text')"; //in der Datenbank steht dann "txtVorname.Text' anstelle des Wertes aus der Textbox
etc.
Ich finde einfach keine Lösung, womit ich den ExecuteNonQuery ersetzten kann, damit Text ausgelesen und eingetragen wird.
Vielleicht habt Ihr eine Idee für mich
Danke schon mal
- Mitglied seit
- 16.11.2001
- Beiträge
- 21.664
- Renomée
- 1.247
- Standort
- München
- Aktuelle Projekte
- World Community Grid
- Lieblingsprojekt
- Folding@Home
- Meine Systeme
- AMD Ryzen 9 5950X
- BOINC-Statistiken
- Folding@Home-Statistiken
- Prozessor
- AMD Ryzen 9 5950X
- Mainboard
- ASUS TUF Gaming X570-Pro [WI-FI]
- Kühlung
- be quiet! Shadow Rock 3
- Speicher
- 4x 16GB DDR4-3200 Corsair Vengeance LPX
- Grafikprozessor
- ASRock Radeon RX 550 Phantom Gaming Aktiv 2GB
- Display
- LG 27UL850-W, 27"
- SSD
- Samsung 980 PRO 2TB, Samsung 840 EVO 500GB
- HDD
- Seagate Barracuda 7200.14 3TB SATA3
- Optisches Laufwerk
- Samsung SH-S183A SATA schwarz (im externen Gehäuse)
- Gehäuse
- be quiet! Silent Base 802 schwarz
- Netzteil
- be quiet! Straight Power 11 Platinum 550W
- Tastatur
- Logitech G613 Lightspeed
- Maus
- Logitech M510
- Betriebssystem
- Ubuntu Linux 22.04
- Webbrowser
- Vivaldi
- Internetanbindung
-
▼100 MBit
▲40 MBit
Code:
string abfrage = "INSERT INTO kunden (Vorname, Nachname) VALUES ([B][SIZE="5"]'[/SIZE][/B]" + txtVorname.Text + "[B][SIZE="5"]'[/SIZE][/B],[B][SIZE="5"]'[/SIZE][/B]" + txtNachname.Text + "[B][SIZE="5"]'[/SIZE][/B])";
regenschirm
Cadet
- Mitglied seit
- 02.10.2009
- Beiträge
- 7
- Renomée
- 0
Die Datenbank sollte so gut wie möglich unumgänglich sein. Das Programm hängt später mit der Datenbank zusammen, welche wiederum mit einer Homepage kommuniziert und daher von Zugriffen so gut als möglich geschützt sein sollte.
Welchen Aufbau würdest du mir empfehlen? In dem Fall werde ich morgen mal wieder ne Runde googeln. Könntest du mir den Namen posten falls er dir wieder einfällt bitte?
Danke schon mal für deine Hilfe
Welchen Aufbau würdest du mir empfehlen? In dem Fall werde ich morgen mal wieder ne Runde googeln. Könntest du mir den Namen posten falls er dir wieder einfällt bitte?
Danke schon mal für deine Hilfe
- Mitglied seit
- 16.11.2001
- Beiträge
- 21.664
- Renomée
- 1.247
- Standort
- München
- Aktuelle Projekte
- World Community Grid
- Lieblingsprojekt
- Folding@Home
- Meine Systeme
- AMD Ryzen 9 5950X
- BOINC-Statistiken
- Folding@Home-Statistiken
- Prozessor
- AMD Ryzen 9 5950X
- Mainboard
- ASUS TUF Gaming X570-Pro [WI-FI]
- Kühlung
- be quiet! Shadow Rock 3
- Speicher
- 4x 16GB DDR4-3200 Corsair Vengeance LPX
- Grafikprozessor
- ASRock Radeon RX 550 Phantom Gaming Aktiv 2GB
- Display
- LG 27UL850-W, 27"
- SSD
- Samsung 980 PRO 2TB, Samsung 840 EVO 500GB
- HDD
- Seagate Barracuda 7200.14 3TB SATA3
- Optisches Laufwerk
- Samsung SH-S183A SATA schwarz (im externen Gehäuse)
- Gehäuse
- be quiet! Silent Base 802 schwarz
- Netzteil
- be quiet! Straight Power 11 Platinum 550W
- Tastatur
- Logitech G613 Lightspeed
- Maus
- Logitech M510
- Betriebssystem
- Ubuntu Linux 22.04
- Webbrowser
- Vivaldi
- Internetanbindung
-
▼100 MBit
▲40 MBit
SqlCommand müsste die Klasse sein, die hat eine Eigenschaft Parameters. Obige Query müsste dann glaube ich so aussehen:
Code:
SqlCommand cmd = new SqlCommand("INSERT INTO kunden (Vorname, Nachname) VALUES (@vorname;, @nachname;)");
cmd.Parameters.AddWithValue("vorname", txtVorname.Text);
cmd.Parameters.AddWithValue("nachname", txtNachname.Text);
cmd.ExecuteNonQuery();
BoMbY
Grand Admiral Special
- Mitglied seit
- 22.11.2001
- Beiträge
- 7.468
- Renomée
- 293
- Standort
- Aachen
- Prozessor
- Ryzen 3700X
- Mainboard
- Gigabyte X570 Aorus Elite
- Kühlung
- Noctua NH-U12A
- Speicher
- 2x16 GB, G.Skill F4-3200C14D-32GVK @ 3600 16-16-16-32-48-1T
- Grafikprozessor
- RX 5700 XTX
- Display
- Samsung CHG70, 32", 2560x1440@144Hz, FreeSync2
- SSD
- AORUS NVMe Gen4 SSD 2TB, Samsung 960 EVO 1TB, Samsung 840 EVO 1TB, Samsung 850 EVO 512GB
- Optisches Laufwerk
- Sony BD-5300S-0B (eSATA)
- Gehäuse
- Phanteks Evolv ATX
- Netzteil
- Enermax Platimax D.F. 750W
- Betriebssystem
- Windows 10
- Webbrowser
- Firefox
Je nach Version vom Visual Studio lohnt es sich vielleicht, sich mal mit den Möglichkeiten von LINQ zu beschäftigen. Geht auch mit MySQL: http://blog.stevekr-soft.de/?p=122
regenschirm
Cadet
- Mitglied seit
- 02.10.2009
- Beiträge
- 7
- Renomée
- 0
Code:
string myConnectionString = "SERVER=localhost;" +
"DATABASE=disini;" +
"UID=root;";
MySqlConnection connection = new MySqlConnection(myConnectionString);
try
{
connection.Open();
MessageBox.Show("Verbindung erfolgreich");
MySqlCommand cmd = new MySqlCommand("INSERT INTO kunden (Vorname, Nachname) VALUES (@vorname;, @nachname;)");
cmd.Parameters.AddWithValue("vorname", txtVorname.Text);
cmd.Parameters.AddWithValue("nachname", txtNachname.Text);
cmd.ExecuteNonQuery();
MessageBox.Show("erledigt");
}
catch
{
MessageBox.Show("Verbindung mit der Datenbank fehlgeschlagen");
}
Ich habs jetzt so versucht, er geht in den try block, gibt mir: "verbindung erfolgreich" und gleich im anschluss "Verbindung mit der Datenbank fehlgeschlagen"
woran könnte dass schon wieder liegen?
- Mitglied seit
- 16.11.2001
- Beiträge
- 21.664
- Renomée
- 1.247
- Standort
- München
- Aktuelle Projekte
- World Community Grid
- Lieblingsprojekt
- Folding@Home
- Meine Systeme
- AMD Ryzen 9 5950X
- BOINC-Statistiken
- Folding@Home-Statistiken
- Prozessor
- AMD Ryzen 9 5950X
- Mainboard
- ASUS TUF Gaming X570-Pro [WI-FI]
- Kühlung
- be quiet! Shadow Rock 3
- Speicher
- 4x 16GB DDR4-3200 Corsair Vengeance LPX
- Grafikprozessor
- ASRock Radeon RX 550 Phantom Gaming Aktiv 2GB
- Display
- LG 27UL850-W, 27"
- SSD
- Samsung 980 PRO 2TB, Samsung 840 EVO 500GB
- HDD
- Seagate Barracuda 7200.14 3TB SATA3
- Optisches Laufwerk
- Samsung SH-S183A SATA schwarz (im externen Gehäuse)
- Gehäuse
- be quiet! Silent Base 802 schwarz
- Netzteil
- be quiet! Straight Power 11 Platinum 550W
- Tastatur
- Logitech G613 Lightspeed
- Maus
- Logitech M510
- Betriebssystem
- Ubuntu Linux 22.04
- Webbrowser
- Vivaldi
- Internetanbindung
-
▼100 MBit
▲40 MBit
Du musst der MySqlCommand-Instanz sagen, welche Verbindung sie nutzen soll.
regenschirm
Cadet
- Mitglied seit
- 02.10.2009
- Beiträge
- 7
- Renomée
- 0
so, nach langer Pause komm ich endlich wieder dazu, weiter zu machen. Ich hoffe ihr könnt mir weiterhin helfen
Ich hab jetzt begonnen den ganzen Zugriff auf die Datenbank in eine eigenen Klasse auszulagern, da diese öfter verwendet wird. Mein Problem ist aber immer noch das Einschreiben in die Datenbank.
Öffnen und Schließen der Datenbank durch die eigene Klasse klappt prima.
meine neue Klasse sieht so aus:
wenn der Block zum „füllen“ in der Hauptklasse steht klappts, aber so nicht mehr!! durch den Konstruktur versuche ich die Werte aus der Textbox rüberzuholen. Sobald ich aber den auskommentierten Bereich anwenden möchte, klappts auch in der Hauptklasse nicht mehr!
Habt ihr eine Idee wie ich allgemein die Werte aus der Textbox holen kann? Ohne Injections etc. Ich sitz echt auf der Leitung!
Danke
Ich hab jetzt begonnen den ganzen Zugriff auf die Datenbank in eine eigenen Klasse auszulagern, da diese öfter verwendet wird. Mein Problem ist aber immer noch das Einschreiben in die Datenbank.
Öffnen und Schließen der Datenbank durch die eigene Klasse klappt prima.
meine neue Klasse sieht so aus:
Code:
class datenbank
{
protected string myConnectionString = "SERVER=localhost; DATABASE=disini; UID=root;";
string vorname;
string nachname;
string tabelle;
public datenbank(string tabelle, string vorname, string nachname)
{
this.vorname = vorname;
this.nachname = nachname;
this.tabelle = tabelle;
}
//öffnen und schließen hab ich rausgelöscht, die klappen einwandfrei
public void füllen(string vorname, string nachname) //klappt auch ohne Parameter nicht
{
MySqlConnection connection = new MySqlConnection(myConnectionString);
//string myQuery = "INSERT INTO " + tabelle + "(Vorname, Nachname)" +
// "VALUES (" + vorname + "," + nachname + ")";
string myQuery = "INSERT INTO kunden (Vorname, Nachname) " +
"VALUES ('Wolfgang', 'Fischer')";
MySqlCommand myCommand = new MySqlCommand(myQuery);
myCommand.Connection = connection;
connection.Open();
myCommand.ExecuteNonQuery();
myCommand.Connection.Close();
}
}
wenn der Block zum „füllen“ in der Hauptklasse steht klappts, aber so nicht mehr!! durch den Konstruktur versuche ich die Werte aus der Textbox rüberzuholen. Sobald ich aber den auskommentierten Bereich anwenden möchte, klappts auch in der Hauptklasse nicht mehr!
Habt ihr eine Idee wie ich allgemein die Werte aus der Textbox holen kann? Ohne Injections etc. Ich sitz echt auf der Leitung!
Danke
- Mitglied seit
- 16.11.2001
- Beiträge
- 21.664
- Renomée
- 1.247
- Standort
- München
- Aktuelle Projekte
- World Community Grid
- Lieblingsprojekt
- Folding@Home
- Meine Systeme
- AMD Ryzen 9 5950X
- BOINC-Statistiken
- Folding@Home-Statistiken
- Prozessor
- AMD Ryzen 9 5950X
- Mainboard
- ASUS TUF Gaming X570-Pro [WI-FI]
- Kühlung
- be quiet! Shadow Rock 3
- Speicher
- 4x 16GB DDR4-3200 Corsair Vengeance LPX
- Grafikprozessor
- ASRock Radeon RX 550 Phantom Gaming Aktiv 2GB
- Display
- LG 27UL850-W, 27"
- SSD
- Samsung 980 PRO 2TB, Samsung 840 EVO 500GB
- HDD
- Seagate Barracuda 7200.14 3TB SATA3
- Optisches Laufwerk
- Samsung SH-S183A SATA schwarz (im externen Gehäuse)
- Gehäuse
- be quiet! Silent Base 802 schwarz
- Netzteil
- be quiet! Straight Power 11 Platinum 550W
- Tastatur
- Logitech G613 Lightspeed
- Maus
- Logitech M510
- Betriebssystem
- Ubuntu Linux 22.04
- Webbrowser
- Vivaldi
- Internetanbindung
-
▼100 MBit
▲40 MBit
Die Antwort steht da: http://www.planet3dnow.de/vbulletin/showthread.php?p=4045506#post4045506
regenschirm
Cadet
- Mitglied seit
- 02.10.2009
- Beiträge
- 7
- Renomée
- 0
Es klappt ich weiß nicht was ich damals falsch gemacht habe, da hab ich den Code ja auch reinkopiert. aber Hauptsache es klappt. vielen vielen dank
Ähnliche Themen
- Antworten
- 0
- Aufrufe
- 441
- Antworten
- 45
- Aufrufe
- 14K
- Antworten
- 15
- Aufrufe
- 4K
- Antworten
- 469
- Aufrufe
- 76K