0
我想對RowEditEnding事件 DB名更新從XAML DataGrid的數據庫記錄:ManageOrders 表:客戶:ID(GUID),姓名(VARCHAR),地址(VARCHAR) 數據庫設置爲:複製,如果新的數據集 設置爲:不復制XAML的DataGrid更新不更新數據庫
如果我硬代碼中使用UPDATE和的ExecuteNonQuery我得到的結果,但是當我試圖使用的數據集/ dataTableAdapter.Update它不會更新我的查詢。 請幫忙。注意我對WPF和C#編程非常新穎。 我花了一個星期的時間研究這個問題,找不到答案或者自己解決。
這裏是我的代碼
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private SimpleData.ManageOrdersDataSet manageOrdersDataSet;
private SimpleData.ManageOrdersDataSetTableAdapters.CustomerTableAdapter manageOrdersDataSetCustomerTableAdapter;
System.Windows.Data.CollectionViewSource customerViewSource;
private void Window_Loaded(object sender, RoutedEventArgs e)
{
manageOrdersDataSet = ((SimpleData.ManageOrdersDataSet)(this.FindResource("manageOrdersDataSet")));
// Load data into the table Customer. You can modify this code as needed.
manageOrdersDataSetCustomerTableAdapter = new SimpleData.ManageOrdersDataSetTableAdapters.CustomerTableAdapter();
manageOrdersDataSetCustomerTableAdapter.Fill(manageOrdersDataSet.Customer);
customerViewSource = ((System.Windows.Data.CollectionViewSource)(this.FindResource("customerViewSource")));
customerViewSource.View.MoveCurrentToFirst();
}
private void customerDataGrid_RowEditEnding(object sender, DataGridRowEditEndingEventArgs e)
{
this.manageOrdersDataSetCustomerTableAdapter.Update(this.manageOrdersDataSet.Customer);
manageOrdersDataSet.AcceptChanges();
}
}
這裏是我的XAML
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:SimpleData" x:Class="SimpleData.MainWindow"
Title="MainWindow" Height="350" Width="525" Loaded="Window_Loaded">
<Window.Resources>
<local:ManageOrdersDataSet x:Key="manageOrdersDataSet"/>
<CollectionViewSource x:Key="customerViewSource" Source="{Binding Customer, Source={StaticResource manageOrdersDataSet}}"/>
</Window.Resources>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="533*"/>
<ColumnDefinition Width="186*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="43*"/>
<RowDefinition Height="377*"/>
</Grid.RowDefinitions>
<TabControl Grid.Column="0" HorizontalAlignment="Left" Height="357" Margin="10,9.8,0,0" Grid.Row="1" VerticalAlignment="Top" Width="513">
<TabItem x:Name="tabView" Header="Customer">
<Grid DataContext="{StaticResource customerViewSource}">
<DataGrid x:Name="customerDataGrid" RowDetailsVisibilityMode="VisibleWhenSelected" Margin="0,0,137,75" ItemsSource="{Binding}" EnableRowVirtualization="True" AutoGenerateColumns="False" RowEditEnding="customerDataGrid_RowEditEnding" >
<DataGrid.Columns>
<DataGridTextColumn x:Name="iDColumn" Width="10" Header="ID" Binding="{Binding ID, UpdateSourceTrigger=PropertyChanged, NotifyOnTargetUpdated=True, Mode=TwoWay }"/>
<DataGridTextColumn x:Name="nameColumn" Width="*" Header="Name" Binding="{Binding Name, UpdateSourceTrigger=PropertyChanged, NotifyOnTargetUpdated=True, Mode=TwoWay }"/>
<DataGridTextColumn x:Name="addressColumn" Width="*" Header="Address" Binding="{Binding Address, UpdateSourceTrigger=PropertyChanged, NotifyOnTargetUpdated=True, Mode=TwoWay}"/>
</DataGrid.Columns>
</DataGrid>
</Grid>
</TabItem>
<TabItem Header="Order">
<Grid Background="#FFE5E5E5" Width="auto"/>
</TabItem>
</TabControl>
</Grid>