Hallo zusammen,
ich hab hier ein Problem und wüsste gern mal eure Meinung.Ich versuche gerad auf eine SQL Datenbank zuzugreifen.Hier mal meine Verbindung
SqlConnection conn = new SqlConnection();
conn.ConnectionString = "Data Source = localhost, Initial Catalog = PUBS, Trusted_Connection = yes";
conn.Open();
Wenn ich jetzt mein Programm ausführe kommt folgende Meldung:
Fehler beim Herstellen einer Verbindung mit dem Server. Beim Herstellen einer Verbindung mit SQL Server 2005 kann dieser Fehler dadurch verursacht werden, dass unter den SQL Server-Standardeinstellungen Remoteverbindungen nicht zulässig sind. (provider: SQL-Netzwerkschnittstellen, error: 25 - Verbindungszeichenfolge ungültig)
Was kann ich tun ???
Müsste der Connection-String nich wie folgt lauten:
Data Source = localhost, Initial Catalog = PUBS, Trusted_Connection = true
Also laut meiner Fachlektüre kommt da ein yes rein.Aber true geht wohl auch anscheinend.Trotzdem is das eigentliche Problem damit nicht gelöst.
Hallo,
soweit mir bekannt ist, wird im connectionstring mit ";" getrennt, nicht mit ",".
lg
lg Lion
Ja stimmt. Das war ein Fehler meinerseits FG. Aber die Meldung kommt immer noch.Ich hab meine Remoteeinstellungen mal angeschaut.Ich habe den Radiobutton auf Lokale Verbindungen und Remotverbindungen gesetzt und dann von den 3 Auswahlmöglichkeiten die "TCP/IP und Name Pipes verwenden" genommen.
Hallo
Ich hab meine Remoteeinstellungen mal angeschaut.
Wieso Deine? Die vom Server musst Du anschauen.
error: 25 - Verbindungszeichenfolge ungültig
Poste doch nochmal Deinen Connectionstring, so wie er jetzt nach den beiden Änderungen aussieht.
Grüße
Elric
Ja des meinte ich ja.Sollte eigentlich stimmen.
SqlConnection conn = new SqlConnection();
conn.ConnectionString = "Data Source = localhost; Initial Catalog = PUBS; Trusted_Connection = yes";
conn.Open();
Hier nochmal die Meldung:
Fehler beim Herstellen einer Verbindung mit dem Server. Beim Herstellen einer Verbindung mit SQL Server 2005 kann dieser Fehler dadurch verursacht werden, dass unter den SQL Server-Standardeinstellungen Remoteverbindungen nicht zulässig sind. (provider: Named Pipes-Provider, error: 40 - Verbindung mit SQL Server konnte nicht geöffnet werden)
Hast du denn auch
"TCP/IP und Name Pipes verwenden" aktiviert am Server? Du hast ja nur eingestellt, er solle es verwenden, aber ob es aktiviert ist?
lg
lg Lion
Ja, ich hätte am ConnectionString sehen können, dass Dein Rechner und der DB-Server derselbe ist.
Aber du kannst vielleicht mal auf der Seite stöbern:
http://www.connectionstrings.com
Da steht z.B. auch, dass bei .NET-SqlConnections =true und nicht =yes verwendet wird.
Im "SQL Server Configurator Manager", zu findem im Startmenü im SQL Server Bereich. Da gibt es Links den Punkt "SQL Server Network configuration", da wählst du deinen Server aus und konfigurierst ihn dementsprechend.
lg
lg Lion
Also so wie es aussieht hab ich wohl ein Verbindungsproblem.Ich habs mal mit ner anderen DB(mdf) getestet.Genau dasselbe.Was könnte ich denn noch tun ???
Muss es eine "Trusted Connection" sein ?
Der Eintrag der Suchwörter "Problem mit Trusted Connection) bei Google bringt immerhin über 1.850.000 Treffer. Das problem scheint es wohl öfter zu geben.
Probier zuerst ohne Trusted Connection :
SQL-Server auf SQL- oder gemischte Authentifizierung stellen.
Im Connectionstring User und Kennwort angeben :
string connstr = "integrated security=false;data source=server_ip;user id=sa;password=password;persist security info=false;initial catalog=" + database;
Dann klappts auf jeden Fall (zu 99,9%).
Grüße Bernd
Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3
Das funktioniert leider auch nicht.Die Meldung ist immer noch dieselbe.Das scheint wohl ein größeres internes Problem zu sein.
Probiers doch mal mit der Alternative:
con = "Server=myServerAddress;Database=myDataBase;Integrated Security=SSPI"
Welche Server version hast du eigentlich
Grüße
Hawk
SQL Server Express 2005.Diese Variante hatte ich auch schon mal probiert.ist genau dasselbe.
Ok so wie es aussieht geht das.Nur das bei einem Backslash ein nichterkannte Escapesequenz gemeldet wird.Bei 2 Backslash funktioniert es.Dafür gibt es jetzt ein neues Problem, und so wie es aussieht ein Rechteproblem.
"Die von der Anmeldung angeforderte "PUPBS"-Datenbank kann nicht geöffnet werden. Fehler bei der Anmeldung.
Fehler bei der Anmeldung für den Benutzer 'SCOOBYPC\Scooby'."
Wie kann ich das noch beseitigen ???
Hallo,
also Escapesequenz sind grundlagen, die soltlest du kennen 🙂
und hast du jetzt mit username und pw gearbeitet?
lg
lg Lion
Hies die Datenbank nicht "PUBS"?
//ich editiere auch jeden Beitrag 🙁
@Lion1984 eine Authentifizierung benötigt man nur wenn man ohne Windows-Authentifizierung arbeitet. Ich glaube nicht, dass diese umgestellt wurde.
Nein noch nicht.Ich hab die Windows Authentifizierung genommen.Müsste das dann nicht reichen ?
Ja stimmt sie hiess so FG.Sorry.Aber es ist immer noch das Problem da mit den Rechten.
Kommst du mit dem SQL Server Management Studio Express auch nicht drauf?
Falls dus noch nicht hast -> Lads dir runter (ist frei)
Wo? -> Frag Google
Also so wie es aussieht kann ich mich mit der Datenbank über dieses Managment Studio verbinden. Das Programm fragt mich am Anfang Servername (bei mir SCOOBYPC\SQLEXPRESS) und nach der Authentifizierung (Windowsauthentifizierung: Benutzername :SCOOBYPC/Scooby Password : keins).
Existiert denn die Datenbank? Zu finden unter Datenbanken im Management Studio
Ja sie ist verfügbar.Es wird alles angezeigt was die Datenbank enthält.
Hy,
dann müßte es mit dem hier klappen:
string con = "Data Source=SCOOBYPC\SQLEXPRESS;Initial Catalog=DEINEDB;Trusted_Connection=yes;";
lg Lion
Das funktioniert leider auch nicht.Da wird immer noch dieselbe Meldung ausgegeben.
Die von der Anmeldung angeforderte "PUBS"-Datenbank kann nicht geöffnet werden. Fehler bei der Anmeldung.
Fehler bei der Anmeldung für den Benutzer 'SCOOBYPC\Scooby'.
Hier mal der gesamte Code :
using System;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlClient;
namespace SQLTest
{
class Program
{
static void Main(string[] args)
{
string strCon = "Data Source=SCOOBYPC\\SQLEXPRESS; Initial Catalog=PUBS;Trusted_Connection=yes;";
SqlConnection conn = new SqlConnection(strCon);
conn.Open();
}
}
}
Bin ja kein Profi, aber hast du denn schon mal die Berechtigungen auf dieser Datenbank kontrolliert? Meiner Meinung nach ist die Fehlermeldung ja ziemlich eindeutig.
Original von Scooby2007
Ok so wie es aussieht geht das.Nur das bei einem Backslash ein nichterkannte Escapesequenz gemeldet wird.Bei 2 Backslash funktioniert es.Dafür gibt es jetzt ein neues Problem, und so wie es aussieht ein Rechteproblem."Die von der Anmeldung angeforderte "PUPBS"-Datenbank kann nicht geöffnet werden. Fehler bei der Anmeldung.
Fehler bei der Anmeldung für den Benutzer 'SCOOBYPC\Scooby'."Wie kann ich das noch beseitigen ???
Ist es, dass hat er selbst gesagt, also daher nehme ich an, er hat es kontrolliert.
lg 🙂
lg Lion
Also eigentlich hab ich volle rechte auf der datenbank.kompletter vollzugriff.aber es funktioniert trotzdem nicht.
Kommst du denn drauf wenn du beim Connection string den sa angibst?
Also ich hab jetzt gerad mal folgendes probiert.Da ich ja Server 2005 Express installiert habe sind ja auch Beispieldatenbanken mitinstalliert worden.In diesem Fall standartgemäß die DB's master, model usw.Ich hab dann mal die master Datenbank genommen und siehe da es geht ohne Probleme.Diese PUBS Datenbank habe ich aus einem MSIPacket das sich SQL2000SampleDb.msi nennt. Diese Packet hab ich installiert.Dann habe ich die PUBS Datenbank in diesem Pfad kopiert "C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data".Dort liegen auch die anderen Datenbanken von Server 2005 Express.Danach hab ich das msi packet wieder gelöscht. Liegt der Fehler vielleicht daran das das packet nicht deinstalliert werden sollte ???
Also so wie es aussieht hat mercuer des Rätsels Lösung."User ID=sa"
Und siehe da es geht.Ohne Fehlermeldung.
Na das mit dem sa user geht ist eigentlich nur der beweis dafür, dass dein user definitiv die falschen Berechtigungen hat. Ist ja nicht gerade empfehlenswert jeden Anwender mit dem sa user auf die datenbank loszulassen...
...ich denke mal dein user hat zwar die richtigen berechtigungen, aber eben nicht auf dieser db
und wie kann ich das ändern ??? soll ich die berechtigungen direkt an der mdfDatei ändern ???
Also so wie es aussieht funktioniert es mit dem User ID = sa doch nicht.Die Meldung kommt wieder.Ich hatte vorhin noch versehentlich die masterDB eingebunden.
im SQL Managment Studio, wenn du dich einloggst hast du den Punkt Security, und da die Logins.. da machste einfach einen neuen Login mit deinem Konto:
New Login, Windows Auth. wählen, dein Konto angeben und sowmit gitbs den Login auf der Datenbank, dann noch die Rechte für die DB vergeben und das wars 🙂
(übrigens gibt da auch "Attach und Deattach methodne, um files anzzuhängen)
lg
lg Lion
Hallo,
dann bestätigt sich das, es reicht nicht die Datenbank datei einfach zu kopieren.
Im Studi auf die Register Karte "Databases" mit der rechten Maustaste und "Attach". Dein file auswählen, dann sollt es zumindest am Server vorhanden sein.
lg
lg Lion
Tja so wie es aussieht hilft das auch nicht.Laut dem Management Studio hab ich jetzt volle Rechte auf der Datenbank. Aber die Fehlermeldung erscheint weiterhin
Ich frage mich gerade wie du vorhin behaupten konntest, du hättest Vollzugriff auf der Datenbank die nicht mal attached war 🤔
Hab zwar bei mir SQL 2005 Pro, aber die Meldung kam mir einfach zu bekannt vor.
Schätze mal, es könnten mehrere Faktoren sein, die da zusammen spielen. (Ein nicht laufender DB Service verursacht den Fehler auch).
In meinen Connection Strings ist immer auch noch ein Provider (z.B. System.Data.SqlClient) angegeben, vielleicht fehlt das ?(