-
Bin Programmieranfänger und habe ein Projekt in dem ich eine GUI dynamisch aus der Datenbank befühlen muss.
bzw. die Spaltennamen der Datenbank sollten Feldnamen in meiner GUI sein.
zb. Spaltennamen Vornamen - so sollte die Ausgabe in der Gui Vornamen sein
Kann mir hierbei jemand weiterhelfen?
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 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 64 65 66 67 68 69
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data.SqlClient; namespace visitor_management_2011 { class DataAccess { private static string connectionString; public static void SetConString(string conString) { connectionString = "SERVER=;dautsql01" + "DATABASE=Visitis.dbo"; } public static DataTable ExecuteQuery(string sql) { SqlConnection connection = new SqlConnection(connectionString); SqlDataAdapter SQLAdapter = new SqlDataAdapter(sql, connection); SqlCommandBuilder commandbuilder = new SqlCommandBuilder(SQLAdapter); try { DataTable ds = new DataTable(); connection.Open(); SQLAdapter.Fill(ds); connection.Close(); return ds; } catch (Exception) { return null; } finally { connection.Close(); } } public static int ExecuteNonQuery(string sql) { SqlConnection connection = new SqlConnection(connectionString); connection.ConnectionString = connectionString; try { connection.Open(); SqlCommand command = new SqlCommand(sql, connection); return command.ExecuteNonQuery(); } catch (Exception) { return -1; } finally { connection.Close(); } } public static bool HasRecords(DataTable datatable) { return datatable != null && datatable.Rows.Count > 0 ? true : false; } } }
Geändert von sheel (20.10.11 um 13:56 Uhr) Grund: Doppel+Codetags
-
Hi und Willkommen bei tutrials.de

Was genau ist das Problem dabei?
Fehlermeldungen etc? Oder ...?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, ...?
-
1: bekomme ich die Meldung DataTable konnte im Namespace nicht gefunden werden
2: Habe ich keine Ahnung welchen Code ich verwenden muss um die Spaltennamen der Datenbank als Feldnamen in der Gui auszugeben?
-
Hallo,
Lösung: einfügen der using-Direktive am Anfang Deines Codes1: bekomme ich die Meldung DataTable konnte im Namespace nicht gefunden werden
Code csharp:1
using System.Data;
Naja, wenn Du es geschafft hast, dass der DataTable gefüllt wird, kannst Du mit folgendem Code iterativ auf die Spaltennamen zugreifen:2: Habe ich keine Ahnung welchen Code ich verwenden muss um die Spaltennamen der Datenbank als Feldnamen in der Gui auszugeben?
Code csharp:1 2 3 4
for(int index = 0; index < dataTable.Columns.Count; index++) { System.Console.WriteLine(dataTable.Columns[index].ColumnName); }
Hoffe, ich konnte weiterhelfen
Viel GrüßeGeändert von VScan (20.10.11 um 19:45 Uhr) Grund: ABC
-
danke für deine hilfe problem eins ist behoben und zu zwei
wie kann ich die datatable befühlen und in meiner leeren gui ausgeben wie gesagt ich bin anfänger und habe keine ahnung was die nächsten schritte sind
LG
-
Hallo,
zu folgenden Problemen:
1. Funktionsaufruf testen (DataAccess.ExecuteQuery("Select * from ...."))wie kann ich die datatable befühlen und in meiner leeren gui ausgeben wie gesagt ich bin anfänger und habe keine ahnung was die nächsten schritte sind
2. Eine Textbox in deine Form ziehen (ich gehe davon aus, dass Du mit Visual Studio 2010 arbeitest, da Du bisher nichts erwähnt hast)
3. überlegen, wie das Ereignis augelöst werden soll, das die Daten von der Datenbank abholt (über einen button-click; gleich beim programmstart; alle 10 minuten, ....)
4. Die Textbox befüllen
Solltest du die oben genannten Schritte nicht ausführen können ohne weitere Hilfe, würde ich sagen, Du solltest Dir mal die MSDN angucken, da wird erklärt, wie man Schritt für Schritt eine WindowsForm anlegt.
Hier der Link: http://msdn.microsoft.com/de-de/libr...=vs.90%29.aspx
Viele Grüße
-
zu 4. die ausgabe soll nicht in textboxen erfolgen sondern in form von einem label****
habe vergessen zu erwähnen das ich drei verschiedene kategorien habe und je kategorie eine verschiede ausgabe haben sollte, hierzu diehnen mir zwei extra tabellen in welcher definiert werden zu welcher kategorie welche feldnamen ausgegeben werden
-
Hallo,
kein Problem, ich denke, dass viele Komponenten für die Datenpräsentation in Frage kommen, je nachdem, was von der Anwendung gefordert wird, eigenen sich die verschiedenen .Net-Klassen einmal mehr oder weniger.
Viele Grüße
-
okay cool
muss ich mal schaun hättest du da ein Beispiel(code)
-
Hey,
könntest Du das Problem, das Du im Moment hast, nochmal genauer erörtern?
Was ist der Zweck der Anwendung wenn ich fragen darf?
Viele Grüße
-
des sollte eine eingabemaske werden mit drei verschieden eingabe kategorien und je nach auswahl im dropdown sollten verschiedene felder nachgeladen werden
derzeit scheitert es daran die spaltennamen MYSQL in der gui auszugeben bzw sie in kategorien zu gliedern und angschliessend auszugeben
-
Hey,
eine konkretere Problembeschreibung wäre schon ganz gut!
Woran genau scheitert es denn?
An der MySql-Connection, am Zugriff auf die Spalten, bei der Gliederung der Daten, bei der Datenausgabe?
Normalerweise werden die Codeabschnitte gepostet, bei denen man ein Problem hat!
Zusätzlich würde ich empfehlen, dass Du Dir folgende Seite rein ziehst, denn der Code, wie er bei Dir im ersten Schnippsel zu sehen ist, ist bei der Fehlerbeseitigung nicht sehr hilfreich:
Code csharp:1 2 3 4
catch (Exception) { return null; }
stattdessen sollte da mindestens folgendes stehen:
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; }
Hier die Seite für das Exception-Handling:
http://msdn.microsoft.com/de-de/libr...VS.100%29.aspx
Viele Grüße
-
cool danke für den einwand
mysql connection ist erfolgreich, zugriff auf die spalten sollte nicht das problem sein
die datenausgabe macht allerdins nach wie vor probleme
wie bekomme ich zb diesen select befehl in ein label so das er direkt beim aufruf des programms befühlt wird
SELECT visitor_database.last_name
FROM visitation CROSS JOIN
visitor_database
-
Bei Deiner Form, gibt es bei den Ereignissen, das Form_Load-Event, hier kann man code platzieren, der beim Laden der Form ausgeführt werden soll.
Hierzu markiert man die Form per Mausklick und klickt im Eigenschaftenfenster auf das Blitzsymbol (Ereignisse), hier findet man nun das Form_Load event, das lediglich doppelt geklickt werden muss, um das Ereignis zu verknüpfen.
Ich denke Du meinst das Ergebnis des "selects", das Du in einem Label haben willst!?
Wenn ja, sollte es ungefähr so aussehen:
Code csharp:1 2 3 4 5 6 7 8 9 10 11 12 13
private void Form1_Load(object sender, EventArgs e) { String mySqlCmd = "SELECT visitor_database.last_name FROM visitation CROSS JOIN visitor_database "; String connectionString = "SERVER=;dautsql01" + "DATABASE=Visitis.dbo"; DataAccess.SetConString("") // <- INFO: Deine Methode ausbessern, die setzt immer den gleichen ConnectionString DataTable dataTable = DataAccess.ExecuteQuery(mySqlCmd); // sonstiger code (z.B. schreibst Du hier dann das ergebnis in ein Label) }
Kennst Du die Klasse DataGridView? Wenn nein, würde ich mir diese mal angucken, damit lassen sich die Daten in einfachster form präsentieren, ohne viel Programmieraufwand:
http://www.dotnetperls.com/datagridview-tutorialGeändert von VScan (24.10.11 um 12:13 Uhr) Grund: ABC
-
okay danke das mySQLCmd muss ich aber noch aufrufen damit es ausgegeben wird oder? wie schaut so ein aufruf in einenem label aus?
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
und bezüglich SetConString da sollte doch immer der gleiche connectionstring aufgerufen werden oder nicht?
meine aktueller code in der textbox:
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 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 64
private 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); } der string mySqlCmd wird nur als text ausgegeben allerdings nicht die daten der datenbank was is hierbei faul? bzw ist etwas mit meiner data_accessklasse faul**** public static void SetConString(string conString) { connectionString = "SERVER=dautsql02; DATABASE=Visitors.dbo"; } 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); connection.Close(); 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); connection.ConnectionString = connectionString; try { connection.Open(); SqlCommand command = new SqlCommand(sql, connection); return command.ExecuteNonQuery(); } catch (Exception) { return -1; } finally { connection.Close(); } } public static bool HasRecords(DataTable datatable) { return datatable != null && datatable.Rows.Count > 0 ? true : false; }
edit:
hab das in einen button verpackt und hab aber momentan das er mit einen error bringtCode csharp:1 2 3 4 5 6 7 8 9
public void button1_Click(object sender, EventArgs e) { String mySqlCmd = "SELECT visitor_database.last_name FROM visitation CROSS JOIN visitor_database "; String connectionString = "SERVER=;dautsql01" + "DATABASE=Visitis.dbo"; DataAccess.SetConString(""); DataTable dataTable = DataAccess.ExecuteQuery(mySqlCmd); MessageBox.Show(mySqlCmd); }
in der klasse data_access:
Fehlermeldung:Code csharp:1
SqlConnection connection = new SqlConnection(connectionString);
ArgumntExeption wurde nicht behandelt
Keyword not supported #dautsql01database#
Woran liegt das? bzw was muss geändert werden um diesen Fehler zu vermeiden.
edit2:
Bin Programmieranfänger und habe momentan ein Problem meine Daten aus der Datenbank in einer Textbox auszugeben
Dabei gibt es konkret folgende zwei Probleme:
1. Die Datenbankverbindung sollte hergestellt werden und überprüft werden allerdings bekomme ich keine Fehlermeldung wen ich eine Falsche Datenbank eintrage somit kann etwas mit meiner Dataaccessklasse nicht in Ordnung sein/der Aufruf dieser Metoden macht Probleme.
Meine Dataaccessklasse:
Der Aufruf der Funktionen: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 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
class DataAccess { public static string connectionString; public static void SetConString(string conString) { connectionString = "SERVER=dautsql02; DATABASE=Visitors.dbo"; } 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); connection.Close(); 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); connection.ConnectionString = connectionString; try { connection.Open(); SqlCommand command = new SqlCommand(sql, connection); return command.ExecuteNonQuery(); } catch (Exception) { return -1; } finally { connection.Close(); } } public static bool HasRecords(DataTable datatable) { return datatable != null && datatable.Rows.Count > 0 ? true : false; }
Code csharp:1 2 3 4 5 6 7
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); }
Mein Versuch die Daten in einer Textbox auszugeben:
Code csharp:1 2 3 4 5 6 7 8
private 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); }
Ich hoffe sehr das mit jemand weiterhelfen kann
LG KROKEVGeändert von sheel (24.10.11 um 17:25 Uhr) Grund: Doppelpost/thread, falsches Forum, Codetags
Ä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





