2013-12-23 48 views
1
for (int i = 0; i < dataGridView1.Rows.Count; i++) 

       it = db.items.FirstOrDefault(p => p.rakmsanf == Convert.ToString(dataGridView1.Rows[i].Cells["Column2"].Value)); 
      { 

       it.quantity =(Convert .ToInt32 (it.quantity)+Convert.ToInt32 (dataGridView1.Rows[i].Cells["Column6"].Value)).ToString(); 
      } 

試圖用列2的值更新如何使用datagrid視圖單元格?

數量並使其=數量+ COLUMN2值項目名稱=其他列 我得到

LINQ到實體其他價值不承認方法'System.String ToString(System.Object)'方法,並且此方法無法轉換爲商店表達式「

enter image description here

+0

我試圖格式化您的代碼,但我認爲您在放置括號的位置有錯誤。 – paqogomez

回答

1

我不能告訴你代碼應該如何格式化,但先嚐試進行字符串轉換,然後使用LINQ語句中的結果。

EF似乎試圖將您的Convert.ToString()轉換爲LINQ,但它不能。

for (int i = 0; i < dataGridView1.Rows.Count; i++) 
{ 
    var cellValue = Convert.ToString(dataGridView1.Rows[i].Cells["Column2"].Value); 

    it = db.items.FirstOrDefault(p => p.rakmsanf == cellValue); 
} 
+0

不工作! var cell alawys Null! – PHPeR

+0

你的意思是'cellValue'總是空?它引用了您的代碼所在的同一列。如果它是空的,那麼「Column2」中沒有任何內容。在'it = db.items ...'上放置一個斷點,遍歷循環幾次,看看'cellValue'是否實際上有一個值。 –

相關問題