-
Krokev, halte dich bitte an die Regen hier.
VScan kann sich auch nicht 24h um dich kümmern.
- Keine Mehrfachposts hintereinander
- Nicht mehrere gleiche Themen
- Richtigen Forumsbereich wählen (C# gehört zu .NET)
- Codetags benutzen, nicht Quote
- Richtige Codetags benutzen (siehe Signatur)
- Keine Profilnachrichten oder PNs, um nach Hilfe zu betteln
- Deutsch
GrußNetiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
"Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?
-
okay sorry tut mir leid hab mir nichts dabei gedacht und gehofft das ich so schneller hilft bei meinem problem bekommen
Sorry
-
Hey, kein Problem, war noch beim Arbeiten

So führst Du die Abfrage aus:okay danke das mySQLCmd muss ich aber noch aufrufen damit es ausgegeben wird oder?
Code csharp:1
DataTable dataTable = DataAccess.ExecuteQuery(mySqlCmd);
Der Compiler meckert deswegen, weil Du innerhalb der Methode SetConString(string conString) die Variable conString nicht zuweist, sollte dann so aussehen:nach dem aufruf sollte auch diese fehlermeldung verschwinden oder?
String connectionString = "SERVER=;dautsql01" + "DATABASE=Visitis.dbo";
die Variable Connectionstring is zugewiesen ihr wert wird aber nie verwendet
Code csharp:1 2 3 4
public static void SetConString(string conString) { connectionString = conString; }
Danach rufst Du erst die Methode SetConString auf, bevor Du die Abfrage aufrufst, ungefär so:
Code csharp:1 2 3
DataAccess.SetConString("SERVER=dautsql02; DATABASE=Visitors.dbo;"); // Dann weiterer code... DataTable dataTable = DataAccess.ExecuteQuery(mySqlCmd);
Das Problem ist der ConnectionString, der eigentlich (zumindest kenn ich es nicht anders) folgendermaßen aussehen sollte bei einer MySql-Datenbank:Fehlermeldung:
ArgumntExeption wurde nicht behandelt
Keyword not supported #dautsql01database#
Code csharp:1 2 3 4
string myConnectionString = "SERVER=localhost;" + "DATABASE=mydatabase;" + "UID=user;" + "PASSWORD=mypassword;";
Es gibt immer kleine Variationsmöglichkeiten bei Datenbanken, das heisst es sind durchaus andere Muster/Parameter im ConnectionString möglich, auch zusätzliche Parameter, wobei Du Dir vielleicht folgende Seite ansehen solltest:
http://dev.mysql.com/doc/refman/5.6/...als-intro.html
Viele Grüße
-
Sollte das nicht eigentlich auch so funktionieren?
Code :1 2 3 4 5 6 7 8
public void richTextBox1_TextChanged(object sender, EventArgs e) { String mySqlCmd = "SELECT visitor_database.last_name FROM visitation CROSS JOIN visitor_database "; String connectionString = "SERVER=dautsql01; DATABASE=Visitors.dbo"; DataAccess.SetConString(connectionString); DataTable dataTable = DataAccess.ExecuteQuery(mySqlCmd); Console.WriteLine(mySqlCmd); }
Meine derzeitige Form Klasse:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
namespace visitor_management_2011 { public partial class Form1 : Form { public Form1() { InitializeComponent(); this.Load += new EventHandler(Form1_Load_1); } private void stripmenu_filtern_Click(object sender, EventArgs e) { } public void Form1_Load_1(object sender, EventArgs e) { /* DataAccess.SetConString(string conString); DataAccess.ExecuteNonQuery(string sql); DataAccess.ExecuteQuery(string sql); DataAccess.HasRecords(DataTable datatable); */ gehört das da rein****? } public void button1_Click(object sender, EventArgs e) { } public void richTextBox1_TextChanged(object sender, EventArgs e) { String mySqlCmd = "SELECT visitor_database.last_name FROM visitation CROSS JOIN visitor_database "; String connectionString = "SERVER=dautsql01; DATABASE=Visitors.dbo"; DataAccess.SetConString(connectionString); DataTable dataTable = DataAccess.ExecuteQuery(mySqlCmd); Console.WriteLine(mySqlCmd); }Geändert von krokev (24.10.11 um 18:25 Uhr)
-
Klar funktioniert das, aber sehr schön ist das nicht gerade!
Stell Dir vor, dass bei jeder Texteingabe, die Du machst, die Abfrage ausgeführt wird, sehr effektiv ist das nicht, aber zu Testzwecken
Schau Dir mal folgendes an:
Code csharp:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
public void button1_Click(object sender, EventArgs e) { fillMyRichTextBox(); } private void fillMyRichTextBox() { String mySqlCmd = "SELECT visitor_database.last_name FROM visitation CROSS JOIN visitor_database "; String connectionString = "SERVER=dautsql01; DATABASE=Visitors.dbo"; DataAccess.SetConString(connectionString); DataTable dataTable = DataAccess.ExecuteQuery(mySqlCmd); if(dataTable != null) { for(int index = 0; index < dataTable.Rows.Count; index++) { addTextToRichTextBox(dataTable.Rows[index]["last_name"].ToString()); } } } private void addTextToRichTextBox(String text) { RichTextBox1.Text = text + "\r\n" + RichTextBox1.Text; // \r\n für eine neue Zeile }
Geändert von VScan (24.10.11 um 18:57 Uhr) Grund: ABC
-
aha okay danke
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
private void fillMyRichTextBox() { String mySqlCmd = "SELECT visitor_database.last_name FROM visitation CROSS JOIN visitor_database "; String connectionString = "SERVER=dautsql01; DATABASE=Visitors.dbo"; DataAccess.SetConString(connectionString); DataTable dataTable = DataAccess.ExecuteQuery(mySqlCmd); if (dataTable != null) { for (int index = 0; index < dataTable.Rows.Count; index++) { addTextToRichTextBox(dataTable.Rows[index]["last_name"].ToString()); } } } public void button1_Click(object sender, EventArgs e) { fillMyRichTextBox(); } private void addTextToRichTextBox(String text) { testtextbox.Text = text + "\r\n" + testtextbox.Text; // \r\n für eine neue Zeile } private void testtextbox(object sender, EventArgs e) { }
Wen ich das jetzt allerdings so eifüge bekomme ich die Fehlermeldungen:
1: Der Typ "visitor_management_2011.Form1" enthält bereits eine Definition für "testtextbox".
2: Mehrdeutigkeit zwischen "visitor_management_2011.Form1.testtextbox" und "visitor_management_2011.Form1.testtextbox(object, System.EventArgs)".
Ist bestimmpt nur eine Kleinigkeit aber ich komme selber einfach nicht drauf
LG und danke nochmals
-
Guten Morgen,
anstatt der "testtextbox" muss natürlich der Name des RichTextBox-Objekts da rein!
Den Namen weis ich leider nicht aber ich gehe davon aus, dass es der Standard is und ungefär so lauten müsste: richTextBox1
Der Compiler meckert natürlich, da Du ein paar Zeilen darunter eine Definition von einer Methode hast, die genauso heisst, inklusive Parameter, das mag er dann nicht, weil ein Methodenaufruf in der Regel anders aussieht als -> testtextbox.Text. (aber es gibt Ausnahmen bei anonymen Methodendeklarationen oder Delegaten) <- Viel Spass beim Nachschlagen!Geändert von VScan (25.10.11 um 08:15 Uhr) Grund: ABC
-
testtextbox ist der name der Textbox den habe ich geändert also sollte es doch mit diesem funktionieren oder?
Ein paar Details haben sich gedrade bezüglich meiner Datenbankanbindung geändert und hetz würde ich gerne wissen wo jetz mein Fehler ligt weil ich keine Connetion habe und keine Fehlermeldung (catch) bekommen
DATAACCESS Klasse neu:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
class DataAccess { public static string connectionString; public static void SetConString(string conString) { connectionString = "SERVER=DAUTSQL01.fremont.lamrc.net" + "Database=Visitors" + "User ID=VisitorDB" + "Password=test"; connectionString = conString; } public static DataTable ExecuteQuery(string sql) { try { SqlConnection connection = new SqlConnection(connectionString); SqlDataAdapter SQLAdapter = new SqlDataAdapter(sql, connection); SqlCommandBuilder commandbuilder = new SqlCommandBuilder(SQLAdapter); DataTable ds = new DataTable(); connection.Open(); SQLAdapter.Fill(ds); return ds; } catch (Exception e) { Console.WriteLine("Error while trying to connect to database: "); return null; } } public static int ExecuteNonQuery(string sql) { SqlConnection connection = new SqlConnection(connectionString); try { connection.ConnectionString = connectionString; connection.Open(); SqlCommand command = new SqlCommand(sql, connection); return command.ExecuteNonQuery(); } catch (Exception e) { Console.WriteLine("Error while trying to connect to database: "); return 1; } finally { connection.Close(); } } public static bool HasRecords(DataTable datatable) { return datatable != null && datatable.Rows.Count > 0 ? true : false; }
Aufruf in der Form:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
public partial class Form1 : Form { public Form1() { InitializeComponent(); this.Load += new EventHandler(Form1_Load_1); } private void stripmenu_filtern_Click(object sender, EventArgs e) { } public void Form1_Load_1(object sender, EventArgs e) { try { DataAccess.SetConString("SERVER=DAUTSQL01.fremont.lamrc.net" + "Database=Visitors" + "User ID=VisitorDB" + "Password=test"); DataAccess.ExecuteQuery("SERVER=DAUTSQL01.fremont.lamrc.net" + "Database=Visitors" + "User ID=VisitorDB" + "Password=test"); DataAccess.ExecuteNonQuery("SERVER=DAUTSQL01.fremont.lamrc.net" + "Database=Visitors" + "User ID=VisitorDB" + "Password=test"); } catch { Console.WriteLine("Error while trying to connect to database: "); } }Geändert von krokev (25.10.11 um 11:08 Uhr)
-
Hallo krokev,
Lösung: Den eventuell entstandenen Fehler ausgeben, sonst kommt immer nur "Error while trying to...";Ein paar Details haben sich gedrade bezüglich meiner Datenbankanbindung geändert und hetz würde ich gerne wissen wo jetz mein Fehler ligt weil ich keine Connetion habe und keine Fehlermeldung (catch) bekommen
Schau Dir bitte den Catch-Block GENAU an, dann fällt Dir auf, dass ich es in meinem Beispiel nicht so gepostet hab.
Beispiel von krokev:
Code csharp:1 2 3 4 5
catch (Exception e) { Console.WriteLine("Error while trying to connect to database: "); return null; }
Beispiel von VScan:
Code csharp:1 2 3 4 5 6
catch (Exception e) { Console.WriteLine("Error while trying to connect to database: " + e.Message() + "\r\n Stacktrace: " + e.StackTrace()); return null; }
Folgendes kann auch nicht funktionieren:
Code csharp:1 2 3 4 5 6
DataAccess.ExecuteQuery("SERVER=DAUTSQL01.fremont.lamrc.net" + "Database=Visitors" + "User ID=VisitorDB" + "Password=test"); DataAccess.ExecuteNonQuery("SERVER=DAUTSQL01.fremont.lamrc.net" + "Database=Visitors" + "User ID=VisitorDB" + "Password=test");
Grund: Die Methoden ExecuteQuery/ExecuteNonQuery führen Abfragen(Selects) aus, sie setzen nicht den connectionString.Geändert von VScan (26.10.11 um 09:32 Uhr) Grund: ABC
Ähnliche Themen
-
Befüllen einer MySQL DB mit großen Daten
Von ElJarno im Forum Algorithmen & Datenstrukturen mit JavaAntworten: 7Letzter Beitrag: 21.05.10, 10:20 -
Umgang der Daten aus einer Derby Datenbank in einer Visual Web JSF Application
Von melly_ im Forum Enterprise Java (JEE, J2EE, Spring & Co.)Antworten: 0Letzter Beitrag: 04.03.09, 14:23 -
dataGridView aus einer Datenbank befüllen
Von Arco3 im Forum .NET DatenverwaltungAntworten: 0Letzter Beitrag: 26.02.09, 16:08 -
Aus einer Application heraus eine neue Application starten
Von Lautsprecher im Forum JavaAntworten: 2Letzter Beitrag: 31.07.07, 14:13 -
dyn. textfeld aus datenbank (mysql=>php) befüllen
Von webpagemaster im Forum Flash PlattformAntworten: 1Letzter Beitrag: 28.08.04, 19:12



4Danke


Zitieren
Login





