Hi and Assalam o Alaikum,
I am new to wpf c#.
I am trying CRUD operations on WPF Datagrid. My datagrid shown records from two table that are linked with foreign key reference.
here is backend code.
privatevoidLoadDataGrid(){DataClassesDataContext dataContext =newDataClassesDataContext();var results =from b in dataContext.iBankNames
join acc in dataContext.iBankAccountNos on b.BankID equals acc.BankIdorderby b.Name ascendingselectnew{BankID= b.BankID,BankName= b.Name,BankAccNo= acc.BankAccNo,BranchName= acc.Branch};MyDataGrid.ItemsSource= results;}
But the problem is occured when i edit a cell data and click on submit button the following message shown by exception.
ERROR:"Excetpion has thrown by the target on invocation" and it point me on linq to sql query that i have written in edit code.
Same problem is occured when i perform Delete operation.
here is my XML Code of wpf.
<DataGridx:Name="MyDataGrid"x:Uid="MyDataGrid"AutoGenerateColumns="False"SelectionMode="Single"AlternationCount="2"><DataGrid.Columns><DataGridTemplateColumnHeader="Bank ID"Width="SizeToHeader"><DataGridTemplateColumn.CellTemplate><DataTemplate><TextBoxIsReadOnly="True"Text="{Binding BankID,Mode=OneWay}"/></DataTemplate></DataGridTemplateColumn.CellTemplate></DataGridTemplateColumn><!----HERE ARE SOME MORE COLOUMNS-----><DataGridTemplateColumnHeader="Edit Row"><DataGridTemplateColumn.CellTemplate><DataTemplate><ButtonContent="Edit"Click="EditButton_Click"/></DataTemplate></DataGridTemplateColumn.CellTemplate></DataGridTemplateColumn><DataGridTemplateColumnHeader="Delete Row"><DataGridTemplateColumn.CellTemplate><DataTemplate><ButtonContent="Delete"Click="DeleteButton_Click"/></DataTemplate></DataGridTemplateColumn.CellTemplate></DataGridTemplateColumn></DataGrid.Columns></DataGrid>
Here is Edit code:
privatevoidEditButton_Click(object sender,RoutedEventArgs e){try{DataClassesDataContext dataContextEdit =newDataClassesDataContext();
iBankName bankRow =MyDataGrid.SelectedItemas iBankName;//string m = customerRow.CustomerID;
iBankName bank =(from p in dataContextEdit.iBankNameswhere p.BankID== bankRow.BankIDselect p).Single();
bank.Name= bankRow.Name;
iBankAccountNo banAccRow =MyDataGrid.SelectedItemas iBankAccountNo;
iBankAccountNo bankAccNo =(from p in dataContextEdit.iBankAccountNoswhere p.BankAccNo== banAccRow.BankAccNoselect p).Single();
bankAccNo.BankAccNo= banAccRow.BankAccNo;
bankAccNo.Branch= banAccRow.Branch;
dataContextEdit.SubmitChanges();MessageBox.Show("Row Updated Successfully.");}catch(ExceptionEx){MessageBox.Show(Ex.Message);// return;}}