wake-up-neo.com

Herstellen einer Verbindung mit der SQL Server 2012-Datenbank mit C # (Visual Studio 2012)

Abend alle,

Ich versuche, von C # aus eine Verbindung zu einer SQL Server 2012-Datenbank herzustellen. Meine Verbindungseinstellungen bei Verwendung von SQL Server Management Studio sind wie folgt: -

Server Type:    Database Engine
Server Name:    Paul-PC\SQLEXPRESS
Authentication: Windows Authentication
Username:   Greyed out
Password:   Greyed out 

Der Name der Datenbank, mit der ich mich verbinden möchte, lautet "testDB".

Hier ist mein Code:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace DatabaseConnection
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void btnConnect_Click(object sender, EventArgs e)
        {
            SqlConnection myConnection = new SqlConnection("server=localhost;" +
                                       "Trusted_Connection=yes;" +
                                       "database=testDB; " +
                                       "connection timeout=30");
            try
            {
                myConnection.Open();
                MessageBox.Show("Well done!");
            }
            catch(SqlException ex)
            {
               MessageBox.Show("You failed!" + ex.Message);
            }

        }
    }
}

Leider kann mein Code mit dem folgenden Fehler keine Verbindung herstellen: -

"Sie sind fehlgeschlagen! Beim Herstellen einer Verbindung mit SQL Server ist ein netzwerkbezogener oder instanzspezifischer Fehler aufgetreten. Der Server wurde nicht gefunden oder konnte nicht aufgerufen werden. Stellen Sie sicher, dass der Instanzname korrekt ist und dass SQL Server für Remoteverbindungen konfiguriert ist. "

Irgendwelche Vorschläge? SQL Server wird lokal ausgeführt.

9
thefragileomen

Ersetzen Sie in Ihrer Verbindungszeichenfolge server=localhost durch "server = Paul-PC\\SQLEXPRESS;".

6
Milen

Ich habe alle Antworten hier getestet, aber für mich funktionierte keine. Also habe ich das Problem ein wenig studiert und schließlich fand ich die Verbindungszeichenfolge erforderlich. Um diese Zeichenfolge zu erhalten, müssen Sie Folgendes tun:
1. in ihrem projektnamen:
ein. Klicken Sie mit der rechten Maustaste auf den Projektnamen.
b. Klicken Sie auf Hinzufügen,
c. Wählen Sie die SQL Server-Datenbank aus (Sie können sie natürlich beliebig umbenennen).
Nun wird die neue gewünschte Datenbank zu Ihrem Projekt hinzugefügt.
2. Die Datenbank ist im Server-Explorer-Fenster sichtbar.
3. Klicken Sie im Server-Explorer-Fenster mit der linken Maustaste auf den Datenbanknamen. Überprüfen Sie nun das Fenster des Projektmappen-Explorers. Neben Provider, State, Type und Version finden Sie die "Verbindungszeichenfolge".
4. Kopieren Sie die bereitgestellte Verbindungszeichenfolge und fügen Sie sie in die Methode Page Load ein:

string source = @"Data Source=(LocalDB)\v11.0;AttachDbFilename=c:\x\x\documents\visual studio 2013\Projects\WebApplication3\WebApplication3\App_Data\Product.mdf;Integrated Security=True";
SqlConnection conn = new SqlConnection(source);
conn.Open();
//your code here;
conn.Close();

Ich habe meine Datenbank in Product umbenannt. In "AttachDbFilename" müssen Sie auch "c:\x\x\documents \" durch Ihren Pfad zur physischen Adresse der MDF-Datei ersetzen.

Es hat für mich funktioniert, aber ich muss erwähnen, dass diese Methode für VS2012 und VS2013 funktioniert. Ich kenne keine anderen Versionen.

3
user3143076

Hinweis unter

connetionString [email protected]"server=XXX;Trusted_Connection=yes;database=yourDB;";

Anmerkung: XXX =. OR.\SQLEXPRESS OR.\MSSQLSERVER OR (lokal)\SQLEXPRESS OR (localdb)\v11.0 & ...

sie können ' server ' durch ' Data Source ' ersetzen.

sie können auch ' database ' durch ' Initial Catalog ' ersetzen.

Probe:

 connetionString [email protected]"server=.\SQLEXPRESS;Trusted_Connection=yes;Initial Catalog=books;";
0
ali

Versuchen:

SqlConnection myConnection = new SqlConnection("Database=testDB;Server=Paul-PC\\SQLEXPRESS;Integrated Security=True;connect timeout = 30");
0
Ben Narube

Das Ersetzen von server=localhost durch server=.\SQLEXPRESS könnte den Job erledigen.

0
Dennis Traub