Benutzer mit den meisten Antworten
Herstellen einer Verbindung zu SQL Server 2014 mit C# klappt nicht

Frage
-
Guten Tag,
nachdem ich von SQL-Server2008 Express auf SQL-Server 2014 umgestiegen bin, kann ich mit meinem C#-Code keine Verbindung mehr zum Server 2014 aufbauen, um eine neue Datenbank zu erstellen, was beim 2008-Expressserver noch wunderbar funktionierte.
- eine Anmeldung mit Hilfe der Management-Konsole funktioniert zu Server 2014.
- Anmeldung ist: Windows-Authentifizierung
- Serverrollen: dbcreator, public, sysadmin
- Port 1433 in der Windows-Firewall ist freigegeben
- TCP/IP ist aktiviert
Was habe ich übersehen?
Gruß Jürgen
Antworten
-
Hi Jürgen,
MSSQLServer ist eigentlich die unbenannte Instanz. Diese ist als DataSource nicht anzugeben. Es reicht "." oder "<servername ohne Instanzname>". Das heißt, Dein ConnectionString für die Neuanlage einer Datenbank sollte so aussehen:connectionString = @"Data Source=.;Initial Catalog=master;Integrated Security=True;Pooling=False";
--
Viele Grüsse
Peter Fleischer (MVP, Partner)
Meine Homepage mit Tipps und Tricks- Als Antwort markiert Jürgen Sch Mittwoch, 2. September 2015 08:11
Alle Antworten
-
Hallo Olaf,
zunächst prüfe ich, ob die neu zu erstellende DB schon vorhanden ist mit:
connectionString = @"Data Source=.\SQLEXPRESSR8;Initial Catalog="+ SysDbName + ";Integrated Security=True;Pooling=False";
try
{
using(conn = newSqlConnection(connectionString))
{
conn.Open();
returntrue;
}
}
catch(Exceptionex)
{
returnfalse;
}
Das dauert schon sehr lange!!! Das war bei Express2008 sofort da!
Falls Datenbank nicht existiert, wird diese erstellt mit:
connectionString = @"Data Source=.\SQLEXPRESSR8;Initial Catalog=master;Integrated Security=True;Pooling=False";
sql = "CREATE Database "+ SysDbName;
try
{
using(conn = newSqlConnection(connectionString))
{
conn.Open();
using(cmd = newSqlCommand(sql, conn))
{
cmd.ExecuteNonQuery();
}
}
MessageBox.Show("Verfahrensdatenbank '"+ SysDbName + "' wurde erfolgreich erstellt.", "Katalog-Datenbank erstellen...", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch(Exceptionex)
{
MessageBox.Show("Fehler bei Erstellung der Datenbank '"+ SysDbName + "'!"+
"\n"+ ex.ToString(), "Katalog-Datenbank erstellen...", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
Es erscheint der Fehler:
"System.Data.SqlClient.SqlException (0x80131904): Netzwerkbezogener oder instanzspezifischer Fehler beim Herstellen einer Verbindung mit SQL Server. Der Server wurde nicht gefunden, oder auf ihn kann nicht zugegriffen werden..."
-
Der Server wurde nicht gefunden, oder auf ihn kann nicht zugegriffen werden..."
Hallo Jürgen,
das "lange dauern" sind mit Sicherheit 15 Sekunden und das ist der Standard Connection Timeout und der Fehlermeldung nach, ist der SQL Server nicht erreichbar.
Im Connection String steht ".\SQLEXPRESSR8", also ein lokaler SQL Server? Hast Du geprüft, ob der SQL Server Dienst läuft? Kannst Du Dich per SSMS an den SQL Server anmelden? Wie hast Du die Migration auf die neue SQL Server Version durchgeführt, als In-Place oder Neuinstallation?
Olaf Helper
[ Blog] [ Xing] [ MVP] -
Hallo Olaf,
ich habe den SQL-Server 2014 als lokalen Testserver NEU installiert und eingerichtet. Der Servername heißt jetzt natürlich anders:
Data Source=.\MSSQLSERVER
In der Konfigurationskonsole habe ich den SQL-Serverdienst nochmals gestartet.
Per SSMS klappt die Anmeldung einwandfrei!!! Das ist ja das Komische??!!
-
Hi Jürgen,
MSSQLServer ist eigentlich die unbenannte Instanz. Diese ist als DataSource nicht anzugeben. Es reicht "." oder "<servername ohne Instanzname>". Das heißt, Dein ConnectionString für die Neuanlage einer Datenbank sollte so aussehen:connectionString = @"Data Source=.;Initial Catalog=master;Integrated Security=True;Pooling=False";
--
Viele Grüsse
Peter Fleischer (MVP, Partner)
Meine Homepage mit Tipps und Tricks- Als Antwort markiert Jürgen Sch Mittwoch, 2. September 2015 08:11
-