Hi liebe Com.
Ich bin gerade dabei eine C# - MySql Verbindung aufzubauen. Wieso kann ich nichts mit der DataGridView(dgv_ausgeben) anzeigen?
Code [php]:string myConnectionString = "SERVER=" + tb_host.Text + ";" + "DATABASE=" + tb_database.Text + ";" + "UID=" + tb_user.Text + ";" + "PASSWORD=" + tb_passwort.Text + ";"; MySqlConnection connection = new MySqlConnection(myConnectionString); if (global.connected == false) { try { MySqlCommand command = connection.CreateCommand(); command.CommandText = "SELECT * FROM " + tb_table.Text; MySqlDataReader Reader; connection.Open(); if (connection.State == ConnectionState.Open) MessageBox.Show("Connection established!", "MySQL Information", MessageBoxButtons.OK, MessageBoxIcon.Information); MySqlDataAdapter adapter = new MySqlDataAdapter("SELECT * FROM " + tb_table.Text, connection); DataSet ds = new DataSet(); adapter.Fill(ds, tb_table.Text); this.dgv_tabelle.DataSource = ds.DefaultViewManager; } catch (MySql.Data.MySqlClient.MySqlException ex) { MessageBox.Show(ex.Message, "MySQL Exception", MessageBoxButtons.OK, MessageBoxIcon.Error); } catch (Exception ex) { MessageBox.Show(ex.Message, "Unknown Exception", MessageBoxButtons.OK, MessageBoxIcon.Error); }
Thema: [C#]MySql
-
04.06.2011, 13:48 #1
[C#]MySql
Geändert von MisterPresident (06.06.2011 um 22:27 Uhr)
- Anzeige
Logge dich ein, um diese Anzeige nicht zu sehen. -
04.06.2011, 14:29 #2
AW: [C#]MySql
Du hast einen lokalen MySQL server installiert? Dann kannst du entweder per MySQL-Konsole oder über ein zusätzliches Tool wie die MySQL Workbench neue DBs auf dem Server anlegen.
Ob .Net Connector und Server dir da helfen können, kann ich dir nicht sagen, hab ich nie benutzt.
-
04.06.2011, 15:42 #3
AW: [C#]MySql
So zum ausprobieren ist MySQL doch viel zu massiv überbloatet und kompliziert. Würde eher SQLite benutzen. :/
-
04.06.2011, 18:36 #4Lieutenant
- Dabei seit
- Apr 2007
- Beiträge
- 661
AW: [C#]MySql
Nachdem der TE heute seinen Initial-Post komplett umgeschrieben hat, steht mein Kommentar in keiner Relation zum Thema mehr, somit habe ich meinen Kommentar entfernt...
Geändert von Rossibaer (06.06.2011 um 22:53 Uhr) Grund: TE erstellte komplett neues Thema, Antwort ist somit nicht mehr gültig
Einem geschenkten Barsch schaut man nicht in ... die Kiemen.
-
04.06.2011, 22:57 #5
AW: [C#]MySql
kannst doch einen ganz normalen sql query ausführen lassen mit dem du eine neue datenbank erstellst?
Nutze Windows 8 und bin mega begeistert!
-
06.06.2011, 22:26 #6
AW: [C#]MySql
Ach man, ich hatte den dienst nicht gestartet -.- und ich habe gedacht das Query ist etwas anderes..
Wieso wir in meine DataGridView(gdv_ausgeben) nichts eingetragen?Code [php]:string myConnectionString = "SERVER=" + tb_host.Text + ";" + "DATABASE=" + tb_database.Text + ";" + "UID=" + tb_user.Text + ";" + "PASSWORD=" + tb_passwort.Text + ";"; MySqlConnection connection = new MySqlConnection(myConnectionString); if (global.connected == false) { try { MySqlCommand command = connection.CreateCommand(); command.CommandText = "SELECT * FROM " + tb_table.Text; MySqlDataReader Reader; connection.Open(); if (connection.State == ConnectionState.Open) MessageBox.Show("Connection established!", "MySQL Information", MessageBoxButtons.OK, MessageBoxIcon.Information); MySqlDataAdapter adapter = new MySqlDataAdapter("SELECT * FROM " + tb_table.Text, connection); DataSet ds = new DataSet(); adapter.Fill(ds, tb_table.Text); this.dgv_tabelle.DataSource = ds.DefaultViewManager; } catch (MySql.Data.MySqlClient.MySqlException ex) { MessageBox.Show(ex.Message, "MySQL Exception", MessageBoxButtons.OK, MessageBoxIcon.Error); } catch (Exception ex) { MessageBox.Show(ex.Message, "Unknown Exception", MessageBoxButtons.OK, MessageBoxIcon.Error); }
-
07.06.2011, 08:11 #7
AW: [C#]MySql
Hi,
so wie ich das sehe (ausser ich ÜBERsehe wieder was) führst du nirgends deine Command aus, kann das sein?
Habe ich aus diesem Beispiel.Code:Reader = command.ExecuteReader();
Ich arbeite leider nicht mit dem .NET-Connector, aber lies dir das Beispiel mal durch. Macht meiner Meinung nach auch keinen Sinn erst
und dannCode:command.CommandText = "SELECT * FROM " + tb_table.Text;
nochmal "SELECT * FROM " + tb_table.Text" zu schreiben.Code:MySqlDataAdapter adapter = new MySqlDataAdapter("SELECT * FROM " + tb_table.Text, connection);
VG,
Mad
Edit: Ok, du willst wahrscheinlich den Reader nicht mehr verwenden, da du nicht Zeilenweise ausgeben willst sondern in einem DG. Dann wirf ihn aber auch aus dem Code, wenn du was nicht benutzt dann wirf es raus, macht's nur unübersichtlich.
Wieso verwendest du das Ganze nicht wie in diesem Beispiel von MySQL? Anstelle der XML packst du dein DataSet eben einfach als DataSource in dein Grid. Wenn dann nichts drinsteht: Ist die Tabelle gefüllt die du abfrägst?Geändert von Madman1209 (07.06.2011 um 08:16 Uhr)
-
07.06.2011, 21:04 #8
AW: [C#]MySql
Ich habe das jetzt mal probiert:
Code [php]:private void btn_connect_Click(object sender, EventArgs e) { DataSet myData = new DataSet(); MySql.Data.MySqlClient.MySqlConnection conn; MySql.Data.MySqlClient.MySqlCommand cmd; MySql.Data.MySqlClient.MySqlDataAdapter myAdapter; conn = new MySql.Data.MySqlClient.MySqlConnection(); cmd = new MySql.Data.MySqlClient.MySqlCommand(); myAdapter = new MySql.Data.MySqlClient.MySqlDataAdapter(); BindingSource source = new BindingSource(); conn.ConnectionString = "SERVER=" + tb_host.Text + ";" + "DATABASE=" + tb_database.Text + ";" + "UID=" + tb_user.Text + ";" + "PASSWORD=" + tb_passwort.Text + ";"; try { source.DataSource = GetData("SELECT * FROM " + tb_table.Text); dgv_tabelle.DataSource = source; } catch (MySql.Data.MySqlClient.MySqlException ex) { MessageBox.Show(ex.Message, "Report could not be created", MessageBoxButtons.OK, MessageBoxIcon.Error); } } public static DataTable GetData(string sqlCommand) { string connectionString = "SERVER=" + tb_host.Text + ";" + "DATABASE=" + tb_database.Text + ";" + "UID=" + tb_user.Text + ";" + "PASSWORD=" + tb_passwort.Text + ";"; SqlConnection northwindConnection = new SqlConnection(connectionString); SqlCommand command = new SqlCommand(sqlCommand, northwindConnection); SqlDataAdapter adapter = new SqlDataAdapter(); adapter.SelectCommand = command; DataTable table = new DataTable(); table.Locale = System.Globalization.CultureInfo.InvariantCulture; adapter.Fill(table); //Hier bekomme ich einen Fehler Netzwerkbezogener oder instanzspezifischer Fehler beim Herstellen einer Verbindung mit SQL Server. Der Server wurde nicht gefunden, oder auf ihn kann nicht zugegriffen werden. Überprüfen Sie, ob der Instanzname richtig ist und ob SQL Server Remoteverbindungen zulässt. (provider: Named Pipes Provider, error: 40 - Verbindung mit SQL Server konnte nicht geöffnet werden) return table; }
-
08.06.2011, 07:54 #9
AW: [C#]MySql
Hi,
Und? Ging's? Oder nicht? Oder wie oder was?Ich habe das jetzt mal probiert:
VG,
Mad
-
08.06.2011, 18:46 #10
AW: [C#]MySql
Ich weiß einfach nicht wie ich den fehler behebe..
Schau code oben:
//Hier bekomme ich einen Fehler
Netzwerkbezogener oder instanzspezifischer Fehler beim Herstellen einer Verbindung mit SQL Server. Der Server wurde nicht gefunden, oder auf ihn kann nicht zugegriffen werden. Überprüfen Sie, ob der Instanzname richtig ist und ob SQL Server Remoteverbindungen zulässt. (provider: Named Pipes Provider, error: 40 - Verbindung mit SQL Server konnte nicht geöffnet werden)
-
08.06.2011, 18:56 #11
AW: [C#]MySql
Hi,
und wenn du nicht die Inhalte der Textboxen nimmst sondern direkt festlegst, welche Servereinstellungen benutzt werden sollen?
Die Exception ist ja relativ eindeutig: SQL Verbindung kann nicht hergestellt werden.
Gib mal deine übergebene "SQL COMMAND" fest ein. Erstmal keine Dynamik. Mache es wie in diesem Beispiel:
http://dev.mysql.com/doc/refman/5.1/...g-crystal.html und schau ob das geht. Wenn das geht können wir schon mal was ausschließen.
Oder du lädst dein komplettes Projekt hoch, dann schau ichs mir direkt im VS an.
VG,
Mad
-
08.06.2011, 19:20 #12
AW: [C#]MySql
Nein Funktioniert auch nicht..
Hier das Projekt..
-
08.06.2011, 19:21 #13
AW: [C#]MySql
Geändert von Madman1209 (08.06.2011 um 19:26 Uhr)
-
08.06.2011, 19:31 #14
AW: [C#]MySql
Den...
und nimm diesen Anhang.. habe gerade noch einen Buttongeändert.. (mit dem kannst du deine Datenbank in eine Textbox einfügen... zum testen
Danke dir
-
08.06.2011, 19:34 #15
AW: [C#]MySql
Hi,
alles klar. Ich teste und melde mich dann.
VG,
Mad
Ergänzung vom 08.06.2011 20:25 Uhr:
Hi,
Ich habe deine Probleme beheben können.
Ersetze deinen Eventhandler beim Button-Click hiermit, wirf die "Get Data" komplett raus und fertig.Code:private void button1_Click(object sender, EventArgs e) { try { DataSet myData = new DataSet(); MySql.Data.MySqlClient.MySqlConnection conn = new MySql.Data.MySqlClient.MySqlConnection(); MySql.Data.MySqlClient.MySqlCommand cmd = new MySql.Data.MySqlClient.MySqlCommand(); MySql.Data.MySqlClient.MySqlDataAdapter myAdapter = new MySql.Data.MySqlClient.MySqlDataAdapter(); conn.ConnectionString = "SERVER=" + tb_host.Text + ";" + "DATABASE=" + tb_database.Text + ";" + "UID=" + tb_user.Text + ";" + "PASSWORD=" + tb_passwort.Text + ";"; cmd.CommandText = "SELECT * FROM " + tb_table.Text + ";"; cmd.Connection = conn; myAdapter.SelectCommand = cmd; myAdapter.Fill(myData); dgv_tabelle.DataSource = myData.Tables[0].DefaultView; } catch (MySql.Data.MySqlClient.MySqlException ex) { MessageBox.Show(ex.Message, "Report could not be created", MessageBoxButtons.OK, MessageBoxIcon.Error); } catch (Exception exep) { MessageBox.Show(exep.Message); } }
Zu deiner Frage "Warum kann ich nicht auf die Textboxen zugreifen": Du musst die Fehlermeldungen lesen
Deine Methode war "static" deklariert, dann brauchst du einen Verweis auf dein Objekt. Habe ich auch gleich mitbehoben 
VG,
MadGeändert von Madman1209 (08.06.2011 um 20:27 Uhr)
-
08.06.2011, 21:45 #16
AW: [C#]MySql
Daaaankesehr
ich bin 16 und hab mir seit 14 eher seit 15 programmieren selbst beigebracht - deswegen wenig struktur etc..
Schulde dir was würd mir gern revangieren
Könntest du mir auch sagen wieso es so gehört oder so ähnlich
Geändert von MisterPresident (08.06.2011 um 21:51 Uhr)
-
08.06.2011, 21:48 #17
AW: [C#]MySql
Hi,
ach, kein Thema. Ich mach's beruflich. Wenn ich mal Zeit und Luft habe helf ich gern.
Viel Spaß noch mit deinem Programm. Wenn noch was ist einfach melden.
VG,
Mad
-
08.06.2011, 21:58 #18
AW: [C#]MySql
Danke dir, schönen abend noch.
MG Lukas
Eine frage hätte ich noch wie kann ich die schön Resizen also das das "grau" nicht da ist, bzw. wie ich am einen Datensatz hineinschreibe..Geändert von MisterPresident (08.06.2011 um 22:10 Uhr)
-
09.06.2011, 07:48 #19
AW: [C#]MySql
Hi,
Naja, eigentlich ist es so auch noch nicht perfekt. Ich würde im Event-Handler "Button-Click" nur eine Methode "MacheIrgendwas()" aufrufen, in der ich dann den Rest drin hab.Könntest du mir auch sagen wieso es so gehört oder so ähnlich
Ich kann dir den Code bei Gelegenheit auch noch durchkommentieren und schreiben, was wo an welcher Stelle genau passiert.
Warum es bei dir nicht ging (also die Exception): Du hast versucht, eine DataTable zu befüllen, das geht so nicht. So kann man nu ein DataSet füllen meines Wissens, da du bei der Abfrage ("SELECT * FROM...") eine Tabelle zurückkriegst. Und aus diesem DataSet schnappt man sich dann die erste Tabelle ("Table[0]") und benutzt diese als DatenQuelle im DataGridView.
Den Satz verstehe ich nicht so ganz. Was genau möchtest du wissen?Eine frage hätte ich noch wie kann ich die schön Resizen also das das "grau" nicht da ist, bzw. wie ich am einen Datensatz hineinschreibe..
VG,
Mad
-
09.06.2011, 20:54 #20
AW: [C#]MySql
Wenn ich in meine DataGridView einen Datensatz schreibe, ist die DataGirdView höchstwarscheindlich zu groß/klein und dann sieht ma eben diesen grauen rahmen..
[Screeny]
Wenn ich nun einen neuen Datensatz hineinschreiben möchte also eine neue Zeile, wie mache ich es am bessten, denn wenn ich normal
So schreiben würde.. Jedoch möchte ich das es automatisch abläuft, dh. das ichCode [php]:INSERT INTO News(Autor, Titel, Inhalt, Datum) VALUES ("Ich", "Meine erste News", "Hiermit teste ich wie man Datensätze in MySQL einfügt", NOW());automatisiere.. aber wie :\Code [php]:News(Autor, Titel, Inhalt, Datum)
LGGeändert von MisterPresident (09.06.2011 um 20:56 Uhr)

Zitieren