Autor Beitrag
Bergmann89
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1742
Erhaltene Danke: 72

Win7 x64, Ubuntu 11.10
Delphi 7 Personal, Lazarus/FPC 2.2.4, C, C++, C# (Visual Studio 2010), PHP, Java (Netbeans, Eclipse)
BeitragVerfasst: Mi 31.03.10 19:37 
Hey,

ich versuch grad mit C# ne Verbindung zu nem SQL Server aufzubauen, um da Daten abzurufen. Ich habe dazu folgenden Code dazu gefunden:
ausblenden 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:
/*stellt die Verbindung mit einem Server und der gewünschten Datenbank her
         * @serverName: Name des Servers
         * @databaseName: Name der Datenbank/user
         * @result: TRUE Wenn die Verbindung erfolgreich getestet wurde, sonst FALSE*/

        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:
ausblenden 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

_________________
Ich weiß nicht viel, lern aber dafür umso schneller^^
traceurmicha
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 160
Erhaltene Danke: 9

Win XP SP2, Win 7 Pro., Ubuntu 9, Debian 5
C#, ASP.NET, MSSQL, PHP(Microsoft Visual Studio 2010 Ultimate, SharpDevelop 4, Microsoft SQL Server2008 Express, Eclipse for PHP)
BeitragVerfasst: Mi 31.03.10 19:50 
Vielleicht ne doofe Frage aber hast du
ausblenden C#-Quelltext
1:
using System.Data.SqlClient					

mit drin in den using Derektiven?
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Mi 31.03.10 19:54 
@user profile icontraceurmicha: Das würde kaum eine Runtime-Exception auslösen.
@user profile iconBergmann89: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1742
Erhaltene Danke: 72

Win7 x64, Ubuntu 11.10
Delphi 7 Personal, Lazarus/FPC 2.2.4, C, C++, C# (Visual Studio 2010), PHP, Java (Netbeans, Eclipse)
BeitragVerfasst: 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.

_________________
Ich weiß nicht viel, lern aber dafür umso schneller^^
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Mi 31.03.10 23:30 
user profile iconBergmann89 hat folgendes geschrieben Zum zitierten Posting springen:
Ö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: .

user profile iconBergmann89 hat folgendes geschrieben Zum zitierten Posting springen:
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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1742
Erhaltene Danke: 72

Win7 x64, Ubuntu 11.10
Delphi 7 Personal, Lazarus/FPC 2.2.4, C, C++, C# (Visual Studio 2010), PHP, Java (Netbeans, Eclipse)
BeitragVerfasst: Mi 31.03.10 23:59 
user profile iconKha hat folgendes geschrieben Zum zitierten Posting springen:
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...

user profile iconKha hat folgendes geschrieben Zum zitierten Posting springen:
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:
ausblenden 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

_________________
Ich weiß nicht viel, lern aber dafür umso schneller^^


Zuletzt bearbeitet von Bergmann89 am Do 01.04.10 00:07, insgesamt 1-mal bearbeitet
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Do 01.04.10 00:06 
user profile iconBergmann89 hat folgendes geschrieben Zum zitierten Posting springen:
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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1742
Erhaltene Danke: 72

Win7 x64, Ubuntu 11.10
Delphi 7 Personal, Lazarus/FPC 2.2.4, C, C++, C# (Visual Studio 2010), PHP, Java (Netbeans, Eclipse)
BeitragVerfasst: 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 ^^

_________________
Ich weiß nicht viel, lern aber dafür umso schneller^^
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: 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 ;) .

_________________
>λ=
Bergmann89 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1742
Erhaltene Danke: 72

Win7 x64, Ubuntu 11.10
Delphi 7 Personal, Lazarus/FPC 2.2.4, C, C++, C# (Visual Studio 2010), PHP, Java (Netbeans, Eclipse)
BeitragVerfasst: Do 01.04.10 01:32 
Hey,

habs hin bekommen. Erst hat er gesagt das er gar keine verbindung herstellen konnte, also war der Server falsch. Dann hat er wegen Benutzer rum gemeckert, also hab ich Windows-Authentifizierung genommen und jetzt gehts. Für alle die das selbe, oder ein ähnliches Problem haben, die Seite hat mir sehr geholfen.

MfG & Thx Bergmann.

_________________
Ich weiß nicht viel, lern aber dafür umso schneller^^
Raorkon
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 86
Erhaltene Danke: 1



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: 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