2014-09-28 4 views
0

SQL Server 2008 Express Edition을 백엔드로 사용하는 Winforms 응용 프로그램을 개발 중입니다.C#을 사용하여 SQL Server 2008 Express 데이터베이스에 연결

Additional information: An attempt to attach an auto-named database for file D:\Hardik\Hardik\dotnet\TestApplication\TestApplication\bin\Debug\MyDatabase.mdf failed. A database with the same name exists, or specified file cannot be opened, or it is located on UNC share.

내 코드는 다음과 같습니다 :하지만 오류가 무엇입니까

private void Form1_Load(object sender, EventArgs e) 
{ 
    SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["MyConnection"].ConnectionString); 

    SqlCommand cmd = new SqlCommand(); 
    cmd.Connection = con; 
    cmd.CommandText = "Select * From MyTable"; 
    cmd.CommandType = CommandType.Text; 

    da = new SqlDataAdapter(); 
    da.SelectCommand = cmd; 

    dt = new DataTable(); 
    ds = new DataSet(); 

    da.Fill(ds, "Login"); 
    dt = ds.Tables[0]; 

    dataGridView1.DataSource = dt; 
} 

app.config 파일은 다음과 같습니다

내가 잘못
<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <connectionStrings> 
     <add name="MyConnection" 
      connectionString="Server=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\MyDatabase.mdf;Integrated Security=True; User Instance=True" 
      providerName="System.Data.Client"/> 
    </connectionStrings> 
</configuration> 

?

+0

'. AttachDbFilename' - LocalDB 대신에 사용됩니다. SQL Express의 경우 데이터베이스는 일반적으로 연결되어 있으며 응용 프로그램이 끝나면 분리되지 않습니다. –

답변

0

단일 슬래시의 이중 슬래시를 사용하십시오.

UNC 경로는 컴퓨터 이름 앞에 이중 슬래시 또는 백 슬래시를 사용합니다. 당신은 당신의 SQL Server 인스턴스에 오류가있을 수있는 오류 "인스턴스 실패"를 가지고로서 인스턴스 실패 에 대한

<connectionStrings> 
    <add name="MyConnection" connectionString="Server=.\\SQLEXPRESS;AttachDbFilename=|DataDirectory|\\MyDatabase.mdf;Integrated Security=True; User Instance=True" providerName="System.Data.Client"/> 
    </connectionStrings> 

..

것은 당신의 SQL Server 인스턴스 (MSSQLSERVER)이 여기서 실행되고 있는지 확인 서비스 목록에 체크인 할 수 있습니다. 서비스리스트에 들어가려면 : 실행 대화 상자를 열고 "services.msc"(따옴표 제외)를 입력하고 Enter 키를 누릅니다. 문제가 지속되면 즉,

.. 실행 여부에 인스턴스 여부를 확인할 수있는 서비스 관리 콘솔로 이동 한 후 사용해보십시오 : 데이터 원본 = \ SQLEXPRESS를 대신 .. :)

+1

감사합니다 ...하지만 이제 오류가 발생합니다. 추가 정보 : 인스턴스 오류입니다. 어떤 도움이 필요하십니까? –

+0

연결 문자열을 으로 변경했습니다. 같은 오류가 발생했습니다. SQLEXPRESS와 동일합니다. –

+0

"데이터 원본 =. \ SQLEXPRESS2012; SQLEXPRESS2012의 앞쪽에 하나만 앞에 백 슬래시를 사용하십시오. –