[英]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.