我正在编写一个程序,用户必须填写一个程序来填充DataGridTable和2个文本框来编辑帐单。该程序执行这些行,但是数据库中什么也没有发生。即使在相同的功能中,如果用户在数据网格表中添加更多的行,它们也会也添加到数据库中,效果很好,但这是更新的问题。
我尝试了几种类型的语法,但是与此相同。
即使我使用了Try / catch方法,也不会显示任何错误或窗口来告诉我为什么它不起作用。这让我疯狂。
SqlDataAdapter daAdaptador2 = new SqlDataAdapter();
foreach (var Linea in Fac.lDetalles)
{
try
{
//adapter.UpdateCommand = command;
daAdaptador2.UpdateCommand = new SqlCommand
("UPDATE factudet SET iLinea = @iLinea, iCantidad = @iCantidad, iPrecioU = @iPrecioU, " +
"iImporte = @iImporte, sCodigo = @sCodigo, sArticulo = @sArticulo, sDescripcion = @sDescripcion " +
"WHERE iNFactura = " + Fac.iNFactura + " AND iID = " + Linea.iID, cnSqlConex);
daAdaptador2.UpdateCommand.Parameters.AddWithValue("@iLinea", Linea.iLinea);
daAdaptador2.UpdateCommand.Parameters.AddWithValue("@iCantidad", Linea.iCantidad);
daAdaptador2.UpdateCommand.Parameters.AddWithValue("@iPrecioU", Linea.iPrecioU);
daAdaptador2.UpdateCommand.Parameters.AddWithValue("@iImporte", Linea.iImporte);
daAdaptador2.UpdateCommand.Parameters.AddWithValue("@sCodigo", Linea.sCodigo);
daAdaptador2.UpdateCommand.Parameters.AddWithValue("@sArticulo", Linea.sArticulo);
daAdaptador2.UpdateCommand.Parameters.AddWithValue("@sDescripcion", Linea.sDescripcion);
daAdaptador2.UpdateCommand.ExecuteNonQuery();
iDet++;
}
catch (Exception e)
{
MessageBox.Show("Error al editar factura" + "\n" + e.Message + e.Source + e.Data);
}
}
应该更新表中的行,但不能。我在程序的同一版本中使用了类似的语法,但是在Access中,它的工作原理还不错,我总是遇到很多问题