10

夕方、

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

        }
    }
}

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

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

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

4

6 に答える 6

3

ここですべての答えをテストしましたが、私にとってはどれもうまくいきませんでした。そのため、問題を少し調べたところ、最終的に必要な接続文字列が見つかりました。この文字列を取得するには、次のようにします 。
1. プロジェクト名で:
プロジェクト名を右クリック
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で機能することに言及する必要があります。他のバージョンについてはわかりません。

于 2014-01-14T15:24:07.120 に答える
0

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

于 2013-06-23T20:42:14.413 に答える
0

試す:

SqlConnection myConnection = new SqlConnection("Database=testDB;Server=Paul-PC\\SQLEXPRESS;Integrated Security=True;connect timeout = 30");
于 2013-06-23T21:06:44.957 に答える