Hallo,
ich habe mal wieder ein Problem.
In meinem Programm habe ich ein Textfeld wo der Nutzer ein Namen eintragen kann. In dem Namen können griechische Buchstaben (Alpha, Beta usw.) vorkommen.
Jetzt möchte ich mit Visual Studio 2005 den Namen in eine MySQL DB speichern. In der DB kommen aber nur Fragezeichen an. Die Spalte der DB ist bei Kollation als utf8_unicode_ci festgelegt.
Wie bekomme ich jetzt die Griechische Buchstaben in die MySQL DB?
Vielen Dank für eure Hilfe.
Doommortar
Kurz gegoogelt:
How to support full Unicode in MySQL databases
Hilft dir das?
Ansonsten musst du mal im My SQL Handbuch nachschlagen.
Die Online Referenz soltle dir bei MySQL und UTF8 eigentlich gut helfen können.
T-Virus
Developer, Developer, Developer, Developer....
99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.
Vorallem, wie schreibst du die Daten und wie kontrollierst du sie?
Ich hoffe das hilft dir weiter. 😉
if (this.frmMain.MYCON.State == ConnectionState.Closed) { this.frmMain.MYCON.Open(); } // öffnet die MySQL Verbindung
MySqlCommand MyCommand = new MySqlCommand("INSERT INTO `verwaltungssystem`.`test1` (`unicode`) VALUES ('" + this.textBox1.Text + "');", this.frmMain.MYCON);
MyCommand.ExecuteNonQuery();
if (this.frmMain.MYCON.State == ConnectionState.Open)
{
this.frmMain.MYCON.Close(); // beendet die MySQL Verbindung
this.frmMain.MYCON.Dispose();
MyCommand.Connection.Close();
MyCommand.Connection.Dispose();
MyCommand.Dispose();
}
[Artikelserie] SQL: Parameter von Befehlen ⚠ ⚠ ⚠
Zudem wäre der Repository Pattern angebracht.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Wenns nur das wäre.
Wissen ist nicht alles. Man muss es auch anwenden können.
PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager |
> ](http://www.mycsharp.de/wbb2/thread.php?threadid=66704) :] :] :]){red}
Auch mit dieser Variante werden nur ? in der DB gespeichert.
if (this.frmMain.MYCON.State == ConnectionState.Closed) { this.frmMain.MYCON.Open(); } // öffnet die MySQL Verbindung
MySqlCommand MyCommand = new MySqlCommand();
MyCommand.Connection = this.frmMain.MYCON;
MyCommand.CommandText = "INSERT INTO `verwaltungssystem`.`test1` (`unicode`) VALUES (?MyText);";
MyCommand.Prepare();
MyCommand.Parameters.Add("?MyText", this.textBox1.Text);
MyCommand.ExecuteNonQuery();
if (this.frmMain.MYCON.State == ConnectionState.Open)
{
this.frmMain.MYCON.Close(); // beendet die MySQL Verbindung
this.frmMain.MYCON.Dispose();
MyCommand.Connection.Close();
MyCommand.Connection.Dispose();
MyCommand.Dispose();
}
Wenn man 3 Sekunden in Google investiert und nach mysql greek letter
sucht erhält man einen Hinweis auf ein falsches oder unpassendes Encoding.
Genau das, was T-Virus Dir im zweiten Beitrag genannt hat.
Hinzu kommen zahlreiche Hinweise auf das CharSet UTF-8 bei Queries oder Connection-Öffnung.
Beachte (endlich) [Hinweis] Wie poste ich richtig? insbesondere 1.1.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Offtopic:
Hier nicht relevant... aber doch ein Tipp für die Zukunft:
Du kannst Dir Probleme ersparen, wenn Du Objekte immer in der Abhängigkeits-Reihenfolge Closed / Disposed.
Ein Command braucht Connection... also immer von aussen nach innen abbauen (Command / Connection).
Dispose ist immer umgekehrt zum Aufbau...
Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...