I am frequently asked to develop solutions using a SQL Server database and VB.NET (Visual Studio 2010). Table adapters seem to work fine for application development on datasources when the datasource is relatively stable.
However, when tables are constantly being modified, it seems like I'm spending as much time reconfiguring adapters, rerunning configuration Wizards, messing around with tableadaptermanagers, dataset designers, query builders, binding sources, databindings, binding navigators, and datasets. Bluagh! Microsoft gets an 'F' for creative naming.
So far, the only way I can see for the app to recognize a new or modified field is for me to remove a tableadapter from the Dataset designer, and then add it back in again. But this causes problems, sometimes, with relationships between tables.
I'm by no means a "seasoned" programmer - and do so only sporadically. But it seems to me for development of applications with volatile data schemas that it might be easier to just use straight stored procedures in SQL and call them using the System.Data.SQLClient methods, like:
Dim cn As New SqlConnection(My.Settings.DBConnectionString)
Dim cmd As New SqlCommand
cmd.CommandType = CommandType.StoredProcedure
cmd.Connection = cn
cmd.CommandText = "DeleteARecord"
cmd.Parameters("@RowID").Value = intDeleteRecord
Dim intRowsAffected As Integer = cmd.ExecuteNonQuery
MessageBox.Show(intRowsAffected.ToString & " Rows Deleted.", "Success")
Catch ex As Exception
Plus, in the end, the heavy work is on the server, and I'm guessing the applications are significantly lighter.