WPF C#ListView数据集,如何使用用户对ListView中的数据所做的更改来更新数据库?
因此,我使用Dataset创建了一个ListView,即在“数据源”窗口中为表选择ListView选项并将其拖到我的界面上 每个列都有一个绑定模式(双向/单向等)。它们都被预先设置为双向,即这里是xaml文件中我的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
<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();