繁体   English   中英

WPF DataGrid更新数据库

[英]WPF datagrid update database

我在C#中相当陌生。 我正在编写一个小型的GUI数据库应用程序,该应用程序使用datagrid来显示表数据。 当我在网格中编辑一行时,按更新按钮,将调用tableadapter的更新功能,并将更改传播回DB。 然后,我为行更改事件实现了一个处理程序,该处理程序又调用了tableadapter的更新功能。 但是这一次,当某些值被更改并按下Enter键时,将调用处理程序,并引发InvalidOperationException,并显示消息“已经存在与此Command关联的打开的DataReader,必须首先关闭它”。 但是数据库还是被更改了。 如何停止要引发的异常。 我在连接字符串中将多个活动结果集设置为true。

构造函数

public WSim(MainWindow h)
{
   InitializeComponent();

   //database connection with strongly typed dataset
   usersAdapter = new testDBDataSetTableAdapters.usersTableAdapter();
   users = usersAdapter.GetUsers();

   users.usersRowChanged +=new testDBDataSet.usersRowChangeEventHandler(users_usersRowChanged);

   this.DataContext = users.DefaultView;
}

行更改事件处理程序

private void users_usersRowChanged(object sender, testDBDataSet.usersRowChangeEvent e) 
{
    output.Content = "Row Modified";
    usersAdapter.Update(users);
}

DataGrid XAML

<DataGrid Height="200" HorizontalAlignment="Left" Margin="26,249,0,0" Name="userGrid" VerticalAlignment="Top" Width="381" AutoGenerateColumns="True"
              SelectionMode="Extended" SelectionUnit="FullRow"  ItemsSource="{Binding}"
              CanUserReorderColumns="True" CanUserResizeColumns="True" CanUserSortColumns="True"
              CanUserAddRows="True" CanUserDeleteRows="True"/>

例外情况是,您应该先关闭阅读器。 您没有提供足够的信息,我无法解释更多; 但是,请参阅此链接 我认为它将为您提供帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM