WPF - 通过TableAdapter,DataContext / Dataview和DataGrid编辑数据库到TextBox

时间:2015-10-14 13:33:23

标签: c# mysql wpf datagrid

我已经完成了一些搜索,无法找到任何有效的答案。实际上这是三个问题(我使用WPF顺便说一下)。

1 - 我有一个数据库,我使用TableAdapter将数据插入其中并显示在dataGrid中。插入功能工作正常,但编辑和删除不起作用。当我更改或删除某些记录时,它确实在数据网格中发生了变化,但是当我重新启动程序时,所有更改(编辑或删除)都没有保存,我也不知道为什么,我'我已经改变了复制数据库和其他类似的属性。这是我的编辑代码:

 private void ButtonEditAtiv_Click(object sender, RoutedEventArgs e)
      {

        string nomeIns = nomeTextBox.Text;
        string emailIns = emailTextBox.Text;
        string telefoneIns = telefoneTextBox.Text;
        string enderecoIns = endereçoTextBox.Text;
        string dataNascIns = dataNascimentoDatePicker.SelectedDate.ToString();
        InstrutorTableAdapter instrutorTA = new InstrutorTableAdapter();
        try
        {
            instrutorTA.Update(this.academiaSQLDS.Instrutor);
        }
        catch (Exception ex)
        {
            MessageBox.Show("" + ex);
        }

2 - 使用DataView / DataContext代码将选定的数据网格线数据传送到文本框:

private CollectionView dataView;
        internal CollectionView DataView
        {
            get
            {
                if (dataView == null)
                {
                    dataView = (CollectionView)
                        CollectionViewSource.GetDefaultView(
                        this.DataContext);
                }
                return dataView;
            }
        }

这个实际上非常适合获取所选数据,但我不知道这是否是正确的方法,因为我找到的其他人都没有这么做。有另一种方法可以获取选定的数据网格线并将其放在文本框中以编辑数据等?

P.S:我正在使用.mdf本地SQL数据库。

1 个答案:

答案 0 :(得分:0)

然后在ItemSource上尝试使用DataContext代替xaml textbox Text"{Binding @Col1}"

这就是我的工作。 在xaml DataGrid x:Name="dataGrid1" ItemsSource="{Binding}"

在xaml Text="{Binding SelectedItem.Grade, ElementName=dataGrid1}"

假设您获得显示数据的数据网格,那么以上就是您填充文本框所需的全部内容。

请标记为答案完成。