Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Bu1

Frischling

  • »Bu1« ist der Autor dieses Themas

Beiträge: 66

Beruf: Schüler

  • Private Nachricht senden

1

16.10.2012, 17:15

SqlConnectionString[C#]

Hi,

ich habe gerade ein Problem, bei dem ich versuche eine Verbindung mit einer SQL-Datenbank zu erstellen. Das ganze mache ich mit Unity3D. Wenn ich mich mit der Datenbank verbinden will, bekomme ich aber folgende Fehlermeldung:

Zitat

Fehler beim Verbinden mit der DB!:
Index #0
Message: Server does not exist or connection refused.
LineNumber: 0
Source: Mono SqlClient Data Provider
Procedure:

Als Connectionstring benutze ich:

Quellcode

1
Data Source=localhost;Initial Catalog=UnitySoulsTest;user id=UnitySouls;password=;

Hier ist der entsprechende Quellcode:

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
string cs = "Data Source=" + dataBaseIP + 
                ";Initial Catalog="+ dataBaseName + 
                ";user id=" + dataBaseUserID +
                ";password=" + dataBasePassword + ";";
Debug.Log("Connection String: " + cs);
dbConnection = new SqlConnection(cs);
try
{
    dbConnection.Open();
}
catch(SqlException ex)
{
    failedToConnectToDB = true;
            
    string errorMessage = "";
    for(int e = 0; e < ex.Errors.Count; e++)
    {
        errorMessage += "Index #" + e + "\n" + 
                "Message: " + ex.Errors[e].Message + "\n" +
                                "LineNumber: " + ex.Errors[e].LineNumber + "\n" +
                                "Source: " + ex.Errors[e].Source + "\n" +
                                "Procedure: " + ex.Errors[e].Procedure + "\n\n";
    }
    Debug.LogError("Fehler beim Verbinden mit der DB!:\n" + errorMessage);
    return;
}


Danke schonmal für alle Antworten :D

Bu1

Zitat

Sämtliche Rechtschreibfehler in diesem Beitrag sind nicht urheberrechtlich geschützt :!:
Sie können nach belieben kopiert und weiterverwändet werden. :P

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

2

16.10.2012, 17:35

Port-Nummer=?
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

3

16.10.2012, 18:46

Hallo Bu1,

ist die Datenbank auch wirklich Lokal auf deinem Rechner? Bezüglich deines ConnectionStrings kannst du dich hier: http://www.connectionstrings.com/ schlau machen.
Spontan sehe ich keinen dramatischen Fehler der dir den Zugriff verweigern sollte, vielleicht liegt es auch an deinen Benutzerdaten (nicht richtig angelegt, keine Rechte,...).

Das einzige was mit etwas stutzig mach ist folgende Zeile:

Zitat

Source: Mono SqlClient Data Provider
Welches Datenbanksystem benutzt du denn? Wenn es sich hierbei nicht um einen "normalen" MS SQL-Server handelt kann es natürlich sein das du eine Schnittstelle benötigst um darauf zugreifen zu können.

Weiter kann ich dir leider nicht helfen ohne weiteren Code gesehen zu haben oder deinen Datenbankserver zu kennen. Hier als kleiner Tipp meinerseits, so kann man relativ ordentlich eine Datenbankverbindung mit einer MS SQL-Server Instanz in C# herstellen.

C#-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
using(SqlConnection sqlCon = new SqlConnection('myConnectionString'))
{   
    using(SqlCommand sqlCmd = sqlCon.CreateCommand())
    {   
        sqlCmd.CommandText = @"mySqlCommand";   
        sqlCmd.Parameters.AddWithValue("@myParameter", myDataTypeObject); 
        ...
        ..
        .
        sqlCon.Open();
        sqlCmd.Execute...
    }
}


Meiner Meinung nach macht es diese Art wesentlich übersichtlicher und erspart einem auch ein paar wesentliche Schritte, wie z.B. das Schließen der Connection, benutzen von Readern und vieles mehr. Lies dir am besten wenn du Interesse daran hast, einfach mal was zu using durch. Du wirst es nicht bereuen! ;)

Gruß,
Fennec

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Fennec« (16.10.2012, 18:55)


BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

4

16.10.2012, 18:56

An den Benutzern kann es nicht liegen, dann wäre die Meldung eine andere. Er kann schon keine Netzwerkverbindung aufbauen. Daher vermute ich einen falschen Port oder es läuft gar kein Server.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Counterfeit

Frischling

Beiträge: 32

Beruf: Softwareentwickler

  • Private Nachricht senden

5

17.10.2012, 08:37

Wenn es eine SqlExpress Instanz ist, dann muss der Server: .\SQLEXPRESS lauten.

6

17.10.2012, 11:01

Es könnte auch sein das der Dienst nicht gestartet ist.

Man kann ja mal versuchen mit dem SQL Server Management Studio - Express darauf zuzugreifen.

Bu1

Frischling

  • »Bu1« ist der Autor dieses Themas

Beiträge: 66

Beruf: Schüler

  • Private Nachricht senden

7

20.10.2012, 13:45

Danke schonmal für die vielen Antworten. Ich hatte vergessen den Port der DB anzugeben :dash:

Jetzt bekomme ich aber folgende Fehlermeldung:

Zitat

Exception: Unknown packet type 75
Mono.Data.Tds.Protocol.TdsComm.GetPhysicalPacketHeader ()
Mono.Data.Tds.Protocol.TdsComm.GetPhysicalPacket ()
Mono.Data.Tds.Protocol.TdsComm.GetByte ()
Mono.Data.Tds.Protocol.Tds.ProcessSubPacket ()
Mono.Data.Tds.Protocol.Tds.NextResult ()
Mono.Data.Tds.Protocol.Tds.SkipToEnd ()
Mono.Data.Tds.Protocol.Tds70.Connect (Mono.Data.Tds.Protocol.TdsConnectionParameters connectionParameters)
Mono.Data.Tds.Protocol.Tds80.Connect (Mono.Data.Tds.Protocol.TdsConnectionParameters connectionParameters)
System.Data.SqlClient.SqlConnection.Open ()
Hat irgendjemand eine Idee was das zu bedeuten hat und wie man den Fehler behebt?
Ich dachte das die Mono.Data.Tds.dll fehlt, aber daran lag es wohl nicht.

Zitat

Sämtliche Rechtschreibfehler in diesem Beitrag sind nicht urheberrechtlich geschützt :!:
Sie können nach belieben kopiert und weiterverwändet werden. :P

Werbeanzeige