从c#中的数据库中保存数据到c#

时间:2011-07-18 11:29:20

标签: c# dataset windows-ce sql-server-ce tableadapter

我有一个使用SQL Server CE绑定到Windows CE应用程序中的列表框的数据集。

数据集中只有一个名为“Codigos”的表有两个字段:id和“code”字段。

我手动将一些数据插入到我的表格中并加载到列表框中。

当我尝试将新值添加到列表框然后保存时,会出现问题。

这是我尝试过的代码:

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

这将使用“003”值将新行加载到列表框中。

我将按钮中的click事件与更新数据库的代码相关联:

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

但是他们都没有工作,数据库没有更新。

有什么建议吗?

2 个答案:

答案 0 :(得分: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();            
    }

答案 1 :(得分:0)

解决方案,以防任何人碰巧发现同样的问题。

问题是数据库正在正确更新,但不是我的计算机中的数据库,而只是终端中有Windows CE的数据库。发生这种情况是因为应用程序在通过Visual Studio 2008执行时将数据库复制到Windows CE终端设备中。

因此,每次执行应用程序时,它都会在我的计算机中使用原始数据而不是更新的数据加载数据库,因此它似乎工作错误,但终端设备中的数据库正在正确更新。

当您生成生产程序并使用Windows CE将其安装到设备中时,它将不会出现此问题并将正确更新数据库。