我用c# winform 用的是ADO.net
我有這樣一張表pc_info,表中有一個欄位stauts
pcsystemEntities db = new pcsystemEntities();
private void read()
{
var pcinfo = db.pc_info.Where(x => x.pc_code == "123").ToList();
if (pcinfo.stauts ==1){
。。。。。
}
}
正常是可以從資料中讀取到相對應的值 。

現在的問題是:
1。這個界面不關
2。我手工從資料庫中,把status =1 ->改成status=2
3。在界面中,重新執行,查詢按鈕read(),界面上的到的值status還是1
我只有把這個界面關閉,重新打開后,才會加載到新值status=2,難到是我查詢寫的不對,還是什么
我看linq 送到資料庫里面的select陳述句是能查到最新的值。
但在回傳的時候,還是用的舊值。
我要想的結果是:
1。資料庫中只要有修改,界面在不重新打開的情況下,我執行重新查詢可以取到當前最新的值。
uj5u.com熱心網友回復:
那就不跟蹤唄,用AsNoTracking() 這樣資料就是只讀的,,這樣每次查詢都是從資料庫拿的,缺點是背景關系中沒有資料的記錄,無法update
var pcinfo = db.pc_info.Where(x => x.pc_code == "123").AsNoTracking().ToList();
uj5u.com熱心網友回復:
AsNoTracking(),無效果我試了一下,每做一次查詢就NEW DB,就可以實時拿到,手工對資料庫內修改后的值,
DB,放到全域變數里面去,就一直拿的是舊的數值。
但每一次查詢NEW一個,這個好像太浪費資源了吧。
還有沒有什么辦法。
pcsystemEntities db ;
private void read()
{
db= new pcsystemEntities();
var pcinfo = db.pc_info.Where(x => x.pc_code == "123").ToList();
if (pcinfo.stauts ==1){
。。。。。
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/251909.html
標籤:C#
上一篇:封裝一個資料庫操作的類,如果類包含有多條SQL陳述句,Parameters引數該怎么寫嗎?
下一篇:sql轉linq
