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