dev.net.ua

Українська Спільнота Розробникiв
 
Ласкаво просимо до dev.net.ua Увійти | Приєднатися | Допомога | Увійти Live ID
в Пошук

Не работает TableAdapterManager.UpdateAll при изменении DataSet ? СОС?

Останнє повідомлення 15-09-2008, 14:01 від beetlejuice. 1 відповіді.
Сортувати: Попереднє Наступне
  •  15-09-2008, 12:26 6878

    Не работает TableAdapterManager.UpdateAll при изменении DataSet ? СОС?

    Привет Программы! :)

    простой пример, создаю в проекте DataSet - UsersDataSet.xsd, таблица Users из БД. В таблице например, такие поля как id, имя, фамилия, должность.

    В интерфейс помещаю группу полей для редактирования данных и список, который наполняю данными из UsersDataSet.

    При изменении данных в поле и попытке сохранить, получаю эксепшен: 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 файла

    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()); }

    }


    NO FUN, ALL BRAIN, NO PENIS
  •  15-09-2008, 14:01 6879 у відповідь на 6878

    Re: Не работает TableAdapterManager.UpdateAll при изменении DataSet ? СОС?

    вопрос отпал, помогли на channel9...

    не заметил что в БД в таблице не поставил primary key

    Самое смешное, что в похожем проекте работало, а в новом нет... так что не забывайте проверять и БД проекта Wink


    NO FUN, ALL BRAIN, NO PENIS
Переглядати як новосний Блог RSS в XML