WPF C#ListView数据集,如何使用用户对ListView中的数据所做的更改来更新数据库?

WPF C#ListView数据集,如何使用用户对ListView中的数据所做的更改来更新数据库?,c#,wpf,listview,dataset,C#,Wpf,Listview,Dataset,因此,我使用Dataset创建了一个ListView,即在“数据源”窗口中为表选择ListView选项并将其拖到我的界面上 每个列都有一个绑定模式(双向/单向等)。它们都被预先设置为双向,即这里是xaml文件中我的ListView的一个片段: <ListView x:Name="cbTableListView" Grid.ColumnSpan="2" ItemsSource="{Binding}" Margin="16,73,16,135" Select

因此,我使用Dataset创建了一个ListView,即在“数据源”窗口中为表选择ListView选项并将其拖到我的界面上

每个列都有一个绑定模式(双向/单向等)。它们都被预先设置为双向,即这里是xaml文件中我的ListView的一个片段:

   <ListView x:Name="cbTableListView" Grid.ColumnSpan="2" ItemsSource="{Binding}" Margin="16,73,16,135" 
              SelectionChanged="onChangeRecord" SelectionMode="Single">
        <ListView.ItemContainerStyle>
            <Style>
                <Setter Property="Control.HorizontalContentAlignment" Value="Stretch"/>
                <Setter Property="Control.VerticalContentAlignment" Value="Stretch"/>
            </Style>
        </ListView.ItemContainerStyle>
        <ListView.View>
            <GridView>
                <GridViewColumn x:Name="_idColumn" Header="ID" Width="60">
                    <GridViewColumn.CellTemplate>
                        <DataTemplate>
                            <TextBox Margin="10,-1,-6,-1" Text="{Binding _id, Mode=OneWay}"/>
                        </DataTemplate>
                    </GridViewColumn.CellTemplate>
                </GridViewColumn>
                <GridViewColumn x:Name="company_nameColumn" Header="Company Name" Width="120">
                    <GridViewColumn.CellTemplate>
                        <DataTemplate>
                            <TextBox Margin="-6,-1" Text="{Binding company_name, Mode=TwoWay, NotifyOnValidationError=true, ValidatesOnExceptions=true}"/>
                        </DataTemplate>
                    </GridViewColumn.CellTemplate>
                </GridViewColumn>
                <GridViewColumn x:Name="contact_nameColumn" Header="Contact Name" Width="120">
                    <GridViewColumn.CellTemplate>
                        <DataTemplate>
                            <TextBox Margin="-6,-1" Text="{Binding contact_name, Mode=TwoWay, NotifyOnValidationError=true, ValidatesOnExceptions=true}"/>
                        </DataTemplate>
                    </GridViewColumn.CellTemplate>
                </GridViewColumn>
有人有什么想法吗?不知道我做错了什么

感谢

通过:

AcceptChanges提交自创建此数据集以来对此数据集所做的所有更改 已加载或自上次调用AcceptChanges以来

这很令人困惑。人们通常在谈论数据库时只使用“提交”一词,但在这种情况下,微软的措辞就被搞砸了。接受更改对基础数据存储不起作用,它只是告诉数据集本身接受当前的更改,并基本清除脏标志,并将其当前数据视为最新和匹配底层存储。

但是,它会继续概述数据集的一般用法:

调用GetChanges方法创建第二个具有以下特征的数据集 只有对数据的更改

调用DataAdapter的更新方法,传递第二个数据集 作为论据

调用Merge方法合并来自第二个数据集的更改 进入第一阶段

调用数据集上的AcceptChanges。或者,调用 拒绝更改以取消更改

这会让你走上正轨

        cBDataSet.AcceptChanges();
cBDataSetcbTableTableAdapter.Fill(cBDataSet.cbTable);
        cbTableViewSource = ((System.Windows.Data.CollectionViewSource)     (this.FindResource("cbTableViewSource")));
        cbTableViewSource.View.MoveCurrentToFirst();