I've got a Windows Forms app talking to an Access db, and I'm
experimenting with VS2005's form data binding stuff etc.
I've got a dataset, a datagridview bound to a query (let's call it
Customers), and I have a button called Edit, which when clicked should
spawn a dialog wherein the customer associated with the current row in
the grid should be edited.
So I need to pass the 'current' Customer ID to this form. There's an
topic in the help titled "Walkthrough: Passing Data Between Forms in a
Windows Application" wherein a similar thing happens: to quote,
"Using the customers and orders tables from Northwind one form will
allow users to select a customer and a second form will display the
selected customer's orders. This walkthrough shows how to create a
method on one form that receives data from the first form."
The relevant part of the walkthrough is this:
Private Sub CustomersDataGridView_DoubleClick(ByVal sender As Object,
ByVal e As System.EventArgs) _
Handles CustomersDataGridView.DoubleClick
Dim SelectedRowView As Data.DataRowView
Dim SelectedRow As NorthwindDataSet.CustomersRow
SelectedRowView = CType(CustomersBindingSource.Current,
System.Data.DataRowView)
SelectedRow = CType(SelectedRowView.Row,
NorthwindDataSet.CustomersRow)
Dim OrdersForm As New Form2
OrdersForm.LoadOrders(SelectedRow.CustomerID)
OrdersForm.Show()
End Sub
My question is - what's with all these CTypes? I've (or rather, the IDE
has) gone to all this trouble to make a whole bundle of strongly-typed
types for my dataset, my datatables, my tableadapters, my columns, my
rows, change events etc etc (the xsd file is enormous when you look at
it in code!) - and yet just to say 'the current value of column X for
data object Y' I have to do 2 CTypes?
Surely there's a cleaner way of just saying 'the current customer ID' ?
--
Larry Lard
Replies to group please