Entwickler-Ecke
ASP.NET und Web - Mit SQL Server 2008 verbinden
Bergmann89 - Mi 31.03.10 19:37
Titel: Mit SQL Server 2008 verbinden
Hey,
ich versuch grad mit C# ne Verbindung zu nem SQL Server aufzubauen, um da Daten abzurufen. Ich habe dazu folgenden Code dazu gefunden:
C#-Quelltext
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 bool connectToDataBase(string serverName, string databaseName){ bool result = false;
this.serverName = serverName; this.databaseName = databaseName;
sqlConnection.ConnectionString = "Data Source=" + serverName + ";" + "Initial Catalog=" + databaseName + ";" + "Trusted_Connection=yes";
try{ sqlConnection.Open(); result = true; }catch (Exception e){ System.Console.WriteLine(e.Message); }finally{ sqlConnection.Close(); }
return result; } |
Das funktioniert aber so nich, er versucht ca 10sec zu verbinden, dann kommt folgende Exception:
Quelltext
1:
| Eine Ausnahme (erste Chance) des Typs "System.Data.SqlClient.SqlException" ist in System.Data.dll aufgetreten. |
Der Server läuft auch auf meinem PC. Ich kann mich auch damit verbinden, wenn ich die DatenQuelle im Visual Studio 08 einfüge. Die Datenbank heißt "meinPC\sqlexpress.master.dbo". Kann mir jmd sagen was ich da falsch mache?!
MfG & Thx Bergmann
traceurmicha - Mi 31.03.10 19:50
Vielleicht ne doofe Frage aber hast du
C#-Quelltext
1:
| using System.Data.SqlClient |
mit drin in den using Derektiven?
Kha - Mi 31.03.10 19:54
@
traceurmicha: Das würde kaum eine Runtime-Exception auslösen.
@
Bergmann89: Wo wir schon bei der Exception sind... wie lautet überhaupt die Fehlermeldung ;) ?
try-finally brauchst du in C# übrigens so gut wie nie, ein
using-Block ist komfortabler.
Bergmann89 - Mi 31.03.10 23:14
Hey,
@traceurmicha: Jo, hab ich drin...
@Kha: Öh, die Fehlermeldung steht doch oben?! Un ein Using-Block is so ähnlich wie das with XYZ do in Delphi, oder? Un wie genau funktioniert das? Wird das Objekt auch wieder freigegeben, bzw die Verbindung beendet, oder gibts da auch ne Art finally-Block?
MfG Bergmann.
Kha - Mi 31.03.10 23:30
Bergmann89 hat folgendes geschrieben : |
| Öh, die Fehlermeldung steht doch oben?! |
Ich sehe nur die Meldung, dass eine Exception aufgetreten ist, aber nicht den Inhalt (
Message, das du doch sogar abfängst :?:) dieser Exception :nixweiss: .
Bergmann89 hat folgendes geschrieben : |
| Un ein Using-Block is so ähnlich wie das with XYZ do in Delphi, oder? |
Nein, überhaupt nicht ;) . Schau dir das noch einmal an, das IDisposable-Pattern ist relativ wichtig.
Bergmann89 - Mi 31.03.10 23:59
Kha hat folgendes geschrieben : |
| Ich sehe nur die Meldung, dass eine Exception aufgetreten ist, aber nicht den Inhalt (Message, das du doch sogar abfängst :?:) dieser Exception :nixweiss: . |
Achso, ich dachte das is schon die Meldung. Wie komm ich da ran, ich find kein anders Ausgabefenster. Un google meint ich soll Ansicht --> Ausgabe auf machen, das wäre die Konsole, da kommt aber auch nix raus...
Kha hat folgendes geschrieben : |
| Nein, überhaupt nicht ;) . Schau dir das noch einmal an, das IDisposable-Pattern ist relativ wichtig. |
Wird gemacht...
€: Ich hab grad noch n anderes Problem bemerkt, und zwar hab ich den Code grad wieder aus dem SVN-Repository geladen, und jetzt wird meine Datenbankklasse nicht mehr erkannt. Hier will ich die Klasse nutzen:
C#-Quelltext
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:
| using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls;
namespace LagerVerwaltung { public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { Database db = new Database(); if (db.connectToDataBase("localhost//SQLEXPRESS", "master")) { Console.WriteLine("Erfolreich verbunden"); } else { Console.WriteLine("Verbindung fehlgeschlagen"); } } } } |
Der Namespace is der gleiche wie in der Database-Klasse (also LagerVerwaltung.Database) das sollte ja eig gehen, soweit ich das richtig verstanden hab, aber trotzdem wird die Klasse nicht mehr erkannt. Heut Nachmittag ging das noch so?! Ich komm mir irgendwie grad wie der letzte Noob vor -.-
MfG & Thx Bergmann
Kha - Do 01.04.10 00:06
Bergmann89 hat folgendes geschrieben : |
| Wie komm ich da ran, ich find kein anders Ausgabefenster. |
Ah, wenn das gar kein Konsolenprojekt ist, wird es mit
Console natürlich etwas schwierig :) . Mit
Debug kannst du in besagtes Ausgabefenster schreiben, aber solche "Exception abfangen und in bool-Rückgabewert umwandeln"-Geschichten gehören sowieso verboten. Lass das
catch einfach weg und schon zeigt dir VS bei einer Exception ein nettes Fenster, in dem du sie zerlegen kannst :) .
Bergmann89 - Do 01.04.10 00:10
OK, da mach ich das so, dazu muss ich aber erstma die Datenbank-Klasse wieder zum laufen bekommen. Hab oben grad noch n Edit ran gehängt, war jetzt vom Timing bisl doof ^^
Kha - Do 01.04.10 00:21
Ist die Database-Datei wirklich im gleichen Projekt eingebunden? Wenn die Klasse irgendwo im Projekt existiert, sollte dir VS wenigstens ein Smart-Tag (-> Strg+".") anbieten, wenn du den Cursor auf "Database" setzt. Wenn nicht, wäre wahrscheinlich langsam ein eigenes Thema dafür fällig ;) .
Raorkon - Di 13.04.10 08:09
| Zitat: |
| try-finally brauchst du in C# übrigens so gut wie nie, ein using-Block ist komfortabler. |
sorry das ich mal das Thema wegen des o.g. Zitats aufrufe. Könntest du mir das mal näher erklären? Ich arbeite nur mit try/Catch/finally.
JüTho - Di 13.04.10 09:00
@Raorkon
Mach dazu bitte eine neue Diskussion im geeigneten Unterforum mit passender Überschrift, sonst geht das zu sehr durcheinander. Dann antworte ich gerne dazu. Jürgen
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!