C# visual studio使用AddtableRow向表中添加行时出现重载错误,但字段计数正确

g6baxovj  于 2023-02-09  发布在  C#
关注(0)|答案(1)|浏览(144)

在这个系统中,一个程序创建表记录,另一个程序更新它们。我希望更新程序能看到新的记录。看到很多对此的查询/响应,但到目前为止没有一个对我有效。一个解决方案是清除并重新加载数据集表。下面的代码重新创建数据集,但我不能包括自动递增的主键bookid。如果它在那里,即使字段计数是正确的,我也会得到一个重载错误。如果我删除它,www.example.com表会被加载,但bookid值是错误的负数),并且我不能更新dataset.booking表,因为它与数据库表不匹配。dataset.booking table is loaded but the bookid values are wrong negative numbers) and I can't update the dataset.booking table as it does not match the database table.

tclDataSet3.booking.AcceptChanges();
tclDataSet3.booking.Clear();
bookingBindingSource.ResetBindings(false);
dataGridView1.ClearSelection();

var bkas1 = tcdb.bookings.Where(b => b.approvalStatus == 1);
foreach (booking bk in bkas1)
    tclDataSet3.booking.AddbookingRow(  
        (int)bk.bookId, 
        (int)bk.bookYear,
        (int)bk.bookMonth,
        (int)bk.bookDay,
        (int)bk.workOrder,
        (int)bk.customerNum,
        bk.firstName,
        bk.lastName,
        bk.vehicle,
        (int)bk.serviceCar,
        bk.repairType,
        (bool)bk.isCompleted,
        (bool)bk.isPickedUp,
        bk.outYear,
        bk.outMonth,
        bk.outDay,
        (bool)bk.isDeleted,
        (int)bk.isUpdated,
        bk.bookingTime,
        (int)bk.approvalStatus);

程序要求:显示www.example.com表的数据网格视图,其中as_code = 1更新数据网格视图中的行以更改as_code = 2从数据网格视图中删除更新的行(bookingBindingSource.RemoveCurrent();dataset.booking table where as_code = 1 updates rows in datagrideview to change as_code = 2 remove updated rows from datagridview (bookingBindingSource.RemoveCurrent(); works well)
刷新数据网格视图以查看as_code = 1的所有www.example.com表行dataset.booking table rows where as_code = 1
当前刷新仅查看DataGridView中的现有记录。
有没有更好的办法?

ecfsfe2w

ecfsfe2w1#

应将数据添加到数据集中,然后刷新dataGridView.DataSource。
如果在绑定数据源后直接向DataGridView添加新行,则可能会导致错误。

相关问题