1

アプリケーションの実行中に Microsoft SQL Server Management Studio 内でデータを変更すると、LINQ を実行しても、新しいデータが取得されません。

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

2 に答える 2

1

私のコンセプトには欠陥があり、実行する必要があるクエリよりも長く DbContext を保持するべきではありません。つまり、データを更新したい場合は、新しい DbContext インスタンスを取得して、データ ソースを再入力するだけで済みます。

于 2012-10-15T13:53:44.530 に答える
-1

接続文字列を次のようにします。

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

私たちのクラスのオブジェクトである更新データを呼び出すSubmitChanges()ことによって、実際のデータベースに実際に書き込まれています

于 2014-12-03T08:46:00.063 に答える