Hallo C#ler,
ich finde die Programmierung mit C# und .NET superinteressant und habe mich mit Hillfe des Galileo openbook Visual C# 2008 eingelesen.
Ich habe eine erste Klasse erstellt, die ich künftig für Datenbankanfragen verwenden möchte. Daneben möchte ich noch eine eigene Klassen für DataSets und das Speichern von Daten in Dateien erstellen, auf die ich immer zurück greifen kann.
"Natürlich" sind die ersten Schwierigkeiten aufgetreten und ich würde mich freuen, wenn ihr mir bei der einen oder anderen Sache weiterhelfen könnt. Ich habe die verschieden Operationen (Öffnen, Anfrage und Schliessen der DB) in verschiedene Methoden gesteckt, um ggf. später auf diese einzeln zurückgreifen zu können (s. Code).
Meine erste Frage: Macht das Sinn?
Da ich damit die Objekte SqlConnection inkl. Open, SqlCommand und Close getrennt habe, habe ich Probleme mit der Über- bzw. Rückgabe des SqlConnection-Objekts (s. 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: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85:
| using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data.SqlClient; using System.Windows.Forms; using System.Data; namespace NS_Datenhandling { class Datenbank {
string ConnectionString = "Server = .\\SQLExpress;" + "AttachDbFilename=C:\\Programme\\Microsoft SQL Server\\MSSQL10.SQLEXPRESS\\MSSQL\\DATA\\Kunden.mdf;" + "Database=Kunden;" + "Trusted_Connection=Yes;";
Datenbank() { }
void verbindeDB() {
try { SqlConnection verbobj = new SqlConnection(ConnectionString); if (verbobj.State == ConnectionState.Closed) { verbobj.Open(); } } catch (System.Data.SqlClient.SqlException ex) {
MessageBox.Show("Fehler " + ex.Number + " ist aufgetreten: " + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
int anfrageDB(string strCommandText) { try { SqlCommand abfrageobj = new SqlCommand(strCommandText); abfrageobj.Connection = verbobj;
int anzahl = Convert.ToInt32(abfrageobj.ExecuteScalar());
return anzahl; } catch (System.Data.SqlClient.SqlException ex) { MessageBox.Show("Fehler " + ex.Number + " ist aufgetreten: " + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return 0; } }
void schliesseDB() { verbobj.Close(); }
static void Main(string[] args) { Datenbank dbobj = new Datenbank(); int anz = dbobj.anfrageDB("SELECT COUNT(*) FROM Kunden"); string txtanz = Convert.ToString(anz); dbobj.schliesseDB();
MessageBox.Show(txtanz, "Status Abfrage"); } } } |
Wäre klasse, wenn ihr einen Blick auf die Klasse werft und mir Feedback gebt.
Desweiteren habe ich festgestellt, dass ich mit MS Visual C# Express eine ganze Menge mehr machen kann als nur zu coden. Man kann anscheinend viel, wie z.B. DataSets anlegen mit Hilfe der GUI machen. Gibt es gute Tutorials zur Handhabe von MS Visual C# Express.
So, damit sind die ersten Fragen gestellt.
Vielen Dank für eure Hilfe.
Gruß
tox
Moderiert von
Kha: C#-Tags hinzugefügt