すべての夜、
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はローカルで実行されています。
接続文字列で、server=localhost
を「server = Paul-PC\\SQLEXPRESS;
」に置き換えます
ここですべての答えをテストしましたが、私にとっては、どれもうまくいきませんでした。だから私は問題を少し研究し、最終的に必要な接続文字列を見つけました。この文字列を取得するには、次を実行します。
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のために働くことに言及しなければならない。他のバージョンについては知りません。
下への注意
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;";
試してください:
SqlConnection myConnection = new SqlConnection("Database=testDB;Server=Paul-PC\\SQLEXPRESS;Integrated Security=True;connect timeout = 30");
server=localhost
をserver=.\SQLEXPRESS
に置き換えると、うまくいくかもしれません。