Hello Pgrogramms! ![]()
simple example, DataSet - UsersDataSet.xsd, table in DB - Users. In table some fields: id, firstname, lastname, job, etc.
In the interface some fields for editing and a list of which are filled with data from UsersDataSet.
When you change the data in the field and try to save, get:
System.InvalidOperationException: Update requires a valid UpdateCommand when passed DataRow collection with modified rows. at WPF1.UsersDataSetTableAdapters.TableAdapterManager.UpdateAll(UsersDataSet dataSet) in UsersDataSet.Designer.cs:line 1259 at WPF1.Window1.btnSave_Click(Object
sender, RoutedEventArgs e) in Window1.xaml.cs:line 82
<ListBox ItemsSource="{Binding Path={}}" IsSynchronizedWithCurrentItem="True">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Label Content="{Binding Path=Firstname}"></Label>
<Label Content="{Binding Path=Lastname}"></Label>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<StackPanel>
<TextBox Height="28" Name="txtUserID" Width="Auto" IsReadOnly="True" Text="{Binding Path=Id, Mode=OneWay}"/>
<TextBox Height="28" Name="txtFirstName" Width="Auto" Text="{Binding Path=Firstname}"/>
<TextBox Height="28" Name="txtLastName" Width="Auto" Text="{Binding Path=Lastname}"/>
</StackPanel><Button Name="btnSave" Width="65" Height="24" Click="btnSave_Click">Save</Button>
*.cs file:
private UsersDataSetTableAdapters.UsersTableAdapter taUsers = new UsersDataSetTableAdapters.UsersTableAdapter();
private UsersDataSet dsUsers = new UsersDataSet();
private UsersDataSetTableAdapters.TableAdapterManager taManager = new UsersDataSetTableAdapters.TableAdapterManager();
private CollectionView View;
private void Window_Loaded(object sender, RoutedEventArgs e)
{
taUsers.Fill(dsUsers.Users);
taManager.UsersTableAdapter = taUsers;
DataContext = from user in dsUsers.Users orderby user.Lastname select user; // ну или так DataContext = dsUsers.Users;
this.View = (CollectionView)(CollectionViewSource.GetDefaultView(this.dsUsers.Users));
}
private void btnSave_Click(object sender, RoutedEventArgs e)
{
try { if (dsUsers.HasChanges()) { if ((taManager.UpdateAll(dsUsers) > 0)) { MessageBox.Show("Saved."); } } }
catch (Exception ex) { MessageBox.Show(ex.ToString()); }
}
Thread Closed
This thread is kinda stale and has been closed but if you'd like to continue the conversation, please create a new thread in our Forums,
or Contact Us and let us know.