2012-08-16 2 views
1

내 응용 프로그램이 실행되는 동안 나는 마이크로 소프트 SQL Server 관리 Studio 내에서 데이터를 변경하는 경우, LINQ 내가했습니다 것을 (외부 데이터베이스 변경으로 DataContext가 업데이트되지 않는 이유는 무엇입니까?

myContext.Refresh(System.Data.Linq.RefreshMode.OverwriteCurrentValues) 

새로운 변화를 얻을 수있는 유일한 방법을 실행하는 경우에도, 새로운 데이터를받지 않습니다 지금까지 발견 ...) 데이터 컨텍스트를 다시 만드는 것입니다.

myContext.Dispose(); 
myContext = new MyDataContext(); 

내가 장님해야는이 정말 분명합니다,하지만 난 나 자신이 바보 같은 질문을 ... 게시 할 수 있도록이 충분한 시간을 낭비했습니다 -_- ''

감사합니다!

편집

내가 SQL에서 데이터를로드 :

myBindingSource.DataSource = myContext.myTable.Where(o => o.id != 0).OrderBy(o => o.name); 
+0

Linq 쿼리 또는 다른 것을 통해 데이터베이스에서 어떻게 데이터를 가져 오나요? 검색어의 예를 게시 할 수 있습니까? 또한 컨텍스트를 다시 만들지 않고 새로 고칠 때 SQL Server 프로파일 러에 표시되는 내용은 무엇입니까? – Dai

+0

로드를 추가하려면 편집 됨. SQL Server Profiler는 어떻게 사용합니까? – Pluc

+0

컨텍스트에서 데이터를 가져 오면 해당 컨텍스트가 설정됩니다. "myBindingSource.DataSource"를 바인딩하도록 데이터가 변경 될 때 쿼리를 다시 실행하면됩니다. – Apurav

답변

0

내 개념은 결함이 있었고, DbContext는 더 이상 당신이 실행하는 데 필요한 쿼리를 유지해서는 안된다. 즉, 데이터를 새로 고치려면 새 DbContext 인스턴스를 가져 와서 데이터 소스를 다시 채워야합니다.

-1

하면 connectionstrin이하자 :

string pp = @"Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\AdventureWorks2012_Data.mdf;Integrated Security=True;Connect Timeout=30"; 

및 업데이트 작업은 아래에 언급 될 :

public async Task callupdate() 
     { 
      try 
      { 
       int ppp = Convert.ToInt32(textBox1ID.Text); 
       DataClasses1DataContext dc = new DataClasses1DataContext(pp); 

       Person person = dc.Persons.Single(c => c.BusinessEntityID == ppp); 
       person.PersonType = Convert.ToString(PersonTypecomboBox1.SelectedItem); 
       person.PersonType = Convert.ToString(PersonTypecomboBox1.SelectedItem); 
       if (NameStylecomboBox1.SelectedText == "False") 
        person.NameStyle = false; 
       else 
        person.NameStyle = true; 
       person.Title = Convert.ToString(TitlecomboBox1.SelectedItem); 
       person.FirstName = FirstNametextBox2.Text; 
       person.MiddleName = MiddleNametextBox3.Text; 
       person.LastName = LastNametextBox4.Text; 
       person.Suffix = SuffixtextBox5.Text; 
       person.EmailPromotion = Convert.ToInt32(EmailPromotiontextBox6.Text); 
       person.ModifiedDate = DateTime.Today; 
       dc.SubmitChanges(); 
      } 
      catch(Exception exp) 
       { 

       } 

     } 

대신 DataClasses1DataContext dc = new DataClasses1DataContext();

DataClasses1DataContext dc = new DataClasses1DataContext(pp);

내지 Vby 업데이트 데이터 SubmitChanges()를 호출을 그 ~이다. 우리 클래스의 객체가 실제 데이터베이스에 실제로 쓰여지고 있습니다.

+0

이 질문에 대한 대답은 무엇입니까? –

관련 문제