2011-07-18 90 views
1

我有一個數據集綁定到使用SQL Server CE的Windows CE應用程序中的列表框。將數據從列表框綁定到數據庫c#

數據集中只有一個名爲「Codigos」的表格有兩個字段:一個ID和一個「代碼」字段。

我手動插入一些數據到我的表中,並加載到列表框。

當我嘗試向列表框添加一個新值並保存它時,會發生問題。

這是我試過的代碼:

DatalogicDataSet.CodigosRow newCodigosRow = datalogicDataSet.Codigos.NewCodigosRow(); 
newCodigosRow.codigo = "003"; 
datalogicDataSet.Codigos.Rows.Add(newCodigosRow); 

這會將一個新行與「003」的值列表框。

private void button1_Click(object sender, EventArgs e) 
    { 
     datalogicDataSet.AcceptChanges();    
    } 

我也試過這樣:

在按鈕關聯的單擊事件的代碼更新數據庫我

private void button1_Click(object sender, EventArgs e) 
    {    
     try 
     { 
      this.codigosBindingSource.EndEdit(); 
      this.codigosTableAdapter.Update(this.datalogicDataSet.Codigos); 
      MessageBox.Show("Update successful"); 
     } 
     catch (System.Exception ex) 
     { 
      MessageBox.Show("Update failed"); 
     } 
    } 

但都沒有工作,沒有更新數據庫。

有什麼建議嗎?

回答

0

的情況下,任何人的解決方案恰好發現了同樣的問題。

問題是數據庫被正確更新,但沒有在我的電腦中,只有終端與Windows CE中的一個。發生這種情況的原因是,應用程序通過Visual Studio 2008將數據庫複製到Windows CE終端設備中。

因此,每次執行應用程序時,它都會將數據庫加載到計算機中,而不是更新數據,所以它似乎工作錯了,但終端設備中的那個正在被正確更新。

當您生成您的生產程序並將其安裝到使用Windows CE的設備中時,它不會出現該問題,並且會正確更新數據庫。

0

嘗試:

private void button1_Click(object sender, EventArgs e) 
    { 
     DatalogicDataSet.CodigosRow newCodigosRow = datalogicDataSet.Codigos.NewCodigosRow(); 
     newCodigosRow.codigo = "003"; 
     datalogicDataSet.Codigos.Rows.Add(newCodigosRow); 
     datalogicDataSet.AcceptChanges();    
    } 
+0

仍然不起作用。當我按下「保存」按鈕時,一個新行被添加到列表框中,但是數據不會保存在數據庫中,例如如果我重新啓動應用程序,只顯示原始數據而不顯示新行。 – rfc1484

+0

你介意顯示錶格結構嗎?你有Codigos餐桌嗎? – ysrb

+0

表和數據庫是使用「服務器資源管理器」管理器創建的。數據庫中只有一個名爲「Codigos」的表。該表有兩個字段:設置爲主鍵和自動增量的id字段(BigInt類型)和爲nvarchar類型的「codigo」字段。 – rfc1484

相關問題