Jag har skapat ett formulär med en koppling till en databas med hjälp av Hjälpen i MSDN. Den skapar då automatiskt en DataGridView, en BindingNavigator och ett dataset. Med BindingNavigator kan jag lägga till rader och ta bort rader i DataGridView:n. I hjälpen står det att om man klickar på Save - ikonen så ska det sparas till databasen. Detta görs inte. Den kod som står i metoden är:Uppdatering av Databas i VB.Net VS2005
Private Sub AdressesBindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AdressesBindingNavigatorSaveItem.Click
Me.Validate()
Me.AdressesBindingSource.EndEdit()
Me.AdressesTableAdapter.Update(Me.Database1DataSet.Adresses)
End Sub
Eftersom allt skapats automatiskt har jag svårt att förstå vad som är fel. Jag har Debuggat mig igenom koden och kommit fram till att VS har skapat sql-kommandon för Update och den ser ut så här:
"UPDATE [dbo].[Adresses] SET [Firstname] = @Firstname, [Lastname] = @Lastname, [Streetaddress] = @Streetaddress, [City] = @City, [Phone] = @Phone WHERE (([Firstname] = @Original_Firstname) AND ([Lastname] = @Original_Lastname) AND ((@IsNull_Streetaddress = 1 AND [Streetaddress] IS NULL) OR ([Streetaddress] = @Original_Streetaddress)) AND ((@IsNull_City = 1 AND [City] IS NULL) OR ([City] = @Original_City)) AND ((@IsNull_Phone = 1 AND [Phone] IS NULL) OR ([Phone] = @Original_Phone)));
SELECT Firstname, Lastname, Streetaddress, City, Phone FROM Adresses WHERE (Firstname = @Firstname) AND (Lastname = @Lastname)"
Det känns som att man inte har någon kontroll när man låter VS skapa kod automatiskt men samtidigt är det bra när det fungerar.
Hoppas att ni kan hjälpa mig med mitt problem.
/Jonas