2011-05-20 64 views
0

我加載的數據從數據表到DataGridView中看起來是這樣的:運行時在數據Gridview行單元中顯示結果?

SerialNumber1 | Quantity | Issued Quantity | Status | 
    00001  |  1 |     |   | 
    00002  |  2 |     |   | 

我有這樣的要求,這讓我卡住了。

我需要查詢數據數據網格視圖記錄來驗證加載的序列號是否與實際相同。 (也許使用LINQ - 糾正我,如果我不正確)

例:

var dgviewData = from a in gdview1.AsEnumerable() 
       where a<string>("SerialNumber").tostring() == txtserial.text 
       select a; 

if(a.Count() > 0) 
{ 
    // Update Status of SerialNumber 00001 to Ok 
} 
else 
{ 
    //Error Serial Not Exist on Gridview 
} 

如果DGview SerialNumbers是掃描的實際序列相同,狀態會在運行時更新datagridview的行只有細胞。

如:DGview串行= 00001 --->單位實際掃描中問候= 00001

SerialNumber1 | Quantity | Issued Quantity | Status | 
    00001  |  1 |  1  | Ok | 
    00002  |  2 |     |   | 

感謝....

+0

你的意思是寫入數據庫,然後更新DGview? – soandos 2011-05-20 07:50:12

+0

..我只需要更新datagridview行單元格...請參閱我的更新後的帖子.. – BizApps 2011-05-20 08:29:38

回答

0

你的LINQ查詢是有點過,得到的匹配行,你應該做的:

string scannedNumber = txtserial.text; 
var matchedRows = this.gdview1.Rows 
    .Cast<DataGridViewRow>() 
    .Where(r => scannedNumber.Equals(r.Cells[0].Value)); 

然後更新 「發行量」(細胞在指數= 2)簡單地做:

foreach (var row in matchedRows) 
{ 
    row.Cells[2].Value = 1; 
} 

除非您想增加該數字,否則使用Int32.Parse/.TryParse

+0

感謝它的工作原理... – BizApps 2011-05-25 01:20:56

0

從我能理解,我認爲你需要添加一個定時器的形式和定時器的事件自動檢查數據庫在gridview中的現有數據的任何updations ...

0

讓我們假設在某個事件,你會得到被掃描的序列號。因此,只要找到序列號,請循環訪問DataGrid,並檢查網格視圖中的第一列是否與掃描的列相同,如果是,則更新當前記錄。

那你究竟堅持哪個部分?循環記錄?

相關問題