2013-03-30 3 views
0

간단한 예제를 만들어 question easyer를 만듭니다. 그래서 내 C# 프로젝트에서 기사가있는 MDF 데이터베이스를 만듭니다. 그런 다음 프로그램에서 데이터베이스를 연결하고 테이블 아티클의 값을 읽습니다. 그것은 저에게 결과를 제공하지만 최신은 아닙니다. 결과가 하나 인 경우이 결과가 나에게 표시됩니다. 그런 다음 기사 테이블에서 기사 하나를 추가하고 프로그램을 다시 실행하면이 경우 프로그램이 나에게 첫 번째 기사 만 표시합니다. 그러나 "Build solution"을 사용하면 모든 것을 찾을 수 있습니다.C# mdf 데이터베이스가 프로그램 시작시 업데이트되지 않습니다.

내가해야 할 일은 무엇입니까? 나는 그 프로그램이 시작할 때 최신 결과를 얻길 바란다. 당신의 MDF 파일이 Copy Always에 재산 Copy To Output Directory 세트가있는 경우

SqlConnection cn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True;User Instance=True"); 

try 
{ 
    cn.Open(); 

    string sqlQuery = "SELECT * FROM Articles"; 
    SqlCommand sqlCommand = new SqlCommand(sqlQuery, cn); 
    SqlDataReader sqlDataRead = sqlCommand.ExecuteReader(); 

    while (sqlDataRead.Read()) 
    { 
     MessageBox.Show(Convert.ToString(sqlDataRead["ArticleLabel"])); 
    } 

    sqlDataRead.Close(); 
    sqlDataRead.Dispose(); 
    sqlCommand.Cancel(); 

    cn.Close(); 
} 
catch (Exception) { MessageBox.Show("Database error!"); Application.Exit(); } 
+0

MDF 파일의 등록 정보를 확인하십시오. '출력 디렉토리에 복사'의 가치는 무엇입니까? – Steve

+0

값은 "항상 복사"입니다. 나는 그것을 기본값으로 둔다. – Clem

답변

0

후 때마다 데이터베이스 파일의 새 복사본을 출력 디렉토리 (BIN\DEBUG 또는 BIN\RELEASE)에 프로젝트 디렉토리에서 복사하여 응용 프로그램을 구축 할 수 있습니다. 물론
이 서버 관리자 윈도우에 표시되는 내용에 속지 마십시오, Copy if Newer 또한

에 당신이 당신의 프로그램의 이전 실행

변경 속성에 변경 사항을 파괴한다. 거기에있는 연결은 Output 디렉토리의 데이터베이스를 가리킬 수 없지만 아무 것도 쓰지 않는 Project Directory의 데이터베이스를 가리킬 수 있습니다.

+0

시도해 보았지만 여전히 동일한 결과가 나타납니다. – Clem

+0

질문에 실제 연결 문자열을 추가 할 수 있습니까? – Steve

+0

좋아, 추가되었습니다. – Clem