我有一个使用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");
}
}
但是他们都没有工作,数据库没有更新。
有什么建议吗?
答案 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将其安装到设备中时,它将不会出现此问题并将正确更新数据库。