web-dev-qa-db-ja.com

C#を使用してSQL Server 2012データベースに接続する(Visual Studio 2012)

すべての夜、

C#からSQL Server 2012データベースに接続しようとしています。 SQL Server Management Studioを使用するときの接続設定は次のとおりです。

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

接続しようとしているデータベースの名前は「testDB」です。

私のコードは次のとおりです。

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);
            }

        }
    }
}

残念ながら、私のコードは次のエラーで接続できません。

「失敗しました。SQLServerへの接続の確立中にネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからないか、アクセスできませんでした。インスタンス名が正しいこと、およびSQL Serverがリモート接続を許可するように構成されていることを確認してください。 」

助言がありますか? SQL Serverはローカルで実行されています。

10
thefragileomen

接続文字列で、server=localhostを「server = Paul-PC\\SQLEXPRESS;」に置き換えます

6
Milen

ここですべての答えをテストしましたが、私にとっては、どれもうまくいきませんでした。だから私は問題を少し研究し、最終的に必要な接続文字列を見つけました。この文字列を取得するには、次を実行します。
1。あなたのプロジェクト名:
a。プロジェクト名を右クリックし、
b。 [追加]をクリックし、
c。 SQL Serverデータベースを選択します(当然、必要に応じて名前を変更できます)。
新しい目的のデータベースがプロジェクトに追加されます。
2。データベースは、サーバーエクスプローラーウィンドウに表示されます。
3。サーバーエクスプローラーウィンドウでデータベース名を左クリックします。ソリューションエクスプローラーウィンドウを確認すると、プロバイダー、状態、タイプ、バージョンとともに「接続文字列」が表示されます。
4。提供された接続文字列をコピーし、Page_Loadメソッドに配置します。

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();

データベースの名前をProductに変更しました。また、「AttachDbFilename」で、「c:\ x\x\documents \」を.mdfファイルの物理アドレスへのパスに置き換える必要があります。

それは私のために働いたが、私はこの方法がVS2012とVS2013のために働くことに言及しなければならない。他のバージョンについては知りません。

3
user3143076

下への注意

connetionString =@"server=XXX;Trusted_Connection=yes;database=yourDB;";

注:XXX =。 OR。\ SQLEXPRESS OR。\ MSSQLSERVER OR(ローカル)\ SQLEXPRESS OR =(localdb)\ v11.0&...

server」を「Data Source」に置き換えることができます

また、「データベース」を「初期カタログ」に置き換えることができます

サンプル:

 connetionString =@"server=.\SQLEXPRESS;Trusted_Connection=yes;Initial Catalog=books;";
0
ali

試してください:

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

server=localhostserver=.\SQLEXPRESSに置き換えると、うまくいくかもしれません。

0
Dennis Traub