Ich versuche, eine Datenbanktabelle an eine Datagrid-Ansicht zu binden. Ich möchte nur bestimmte Felder anzeigen, indem ich irrelevante Felder wie ID, CREATED_BY, CREATED_ON usw. weglasse. Ich kann die Liste korrekt laden, aber die Aktualisierung auf die DB funktioniert nicht.Warum aktualisiert mein Datagrid die DB nicht? WPF .NET 4.5
BEARBEITET - REINIGTER CODE A BIT.
Das ist, was ich die Datenrasteransicht laden muss. XAML:
<Grid Margin="0">
<DataGrid x:Name="ProductsDataGrid" AutoGenerateColumns="False" Style="{StaticResource AzureDataGrid}" Background="White" IsTextSearchEnabled="True" Margin="0,0,0,50" RenderTransformOrigin="0.479,0.06">
<DataGrid.Columns>
<DataGridTextColumn Header="Name" Binding="{Binding FP1_NAME}" Width="Auto"/>
<DataGridCheckBoxColumn ElementStyle="{DynamicResource MetroDataGridCheckBox}"
EditingElementStyle="{DynamicResource MetroDataGridCheckBox}"
Header="Is Needed"
/>
</DataGrid.Columns>
</DataGrid>
<Button x:Name="ProductsGridUpdate" Content="update" Style="{StaticResource AccentedSquareButtonStyle}" HorizontalAlignment="Left" Margin="424,280,0,0" VerticalAlignment="Top" Width="75" RenderTransformOrigin="1.453,1.103" Click="ProductsGridUpdate_Click"/>
</Grid>
und hier ist der Code hinter:
private void LoadList()
{
//init
ProductsDataGrid.Items.Clear();
ProductsDataGrid.BeginInit();
ProductsDataGrid.ItemsSource = SQLCommands.GR1_DataSet.fp1_food_products;
ProductsDataGrid.DataContext = SQLCommands.GR1_DataSet.fp1_food_products;
ProductsDataGrid.EndInit();
}
#endregion
private void ProductsGridUpdate_Click(object sender, RoutedEventArgs e)
{ // this does not work? No error is thrown, and it runs. DB just doesn't update.
SQLCommands.fp1_adapter.Update (SQLCommands.GR1_DataSet.fp1_food_products);
}
Hier ist, was ich bei App-Start ausgeführt für das Laden der Liste vorzubereiten:
public static void SQLFoodProductsProvider()
{
GR1_DataSet = new GroceryListDataSet();
fp1_adapter = new GroceryListDataSetTableAdapters.fp1_food_productsTableAdapter();
fp1_adapter.Fill(GR1_DataSet.fp1_food_products);
//GR1_DataSet.fp1_food_products.fp1_food_productsRowChanged +=
// new GroceryListDataSet.fp1_food_productsRowChangeEventHandler(MainWindow.fp1_food_productsRowModified);
//GR1_DataSet.fp1_food_products.fp1_food_productsRowDeleted +=
// new GroceryListDataSet.fp1_food_productsRowChangeEventHandler(MainWindow.fp1_food_productsRowModified);
}
Hilfe oder Richtung wird sehr geschätzt. Vielen Dank im Voraus. Ich habe die db mit Visual Studio erstellt, wenn das wichtig ist.
auskommentieren ProductsDataGrid.DataContext = data; löscht die Ausnahme, aber die Datenbank wird immer noch nicht aktualisiert. – user43390
Haben Sie überprüft, ob die DataTable etwas enthält? –
Ich habe den Code geändert, um einigen anderen Tutorials ein bisschen mehr zu folgen und es etwas sauberer zu machen. – user43390