[AccessD] .Net Form Binding (was: Goodbye Leszynski/Reddick?)

Salakhetdinov Shamil mcp2004 at mail.ru
Mon Jan 26 11:37:23 CST 2015


 Hi Dan --

I have never used LtS.
I have used EF (version 4 and below) but I have found it's slow for mass updates (insert/update/delete).
Actually nowadays I'm doing not that much development where back-ends communication is involved but when such back-end communication is needed I'm using ADO.NET with strongly typed datasets - they are very fast, good enough for my customers needs.

Thank you.

-- Shamil


Monday, January 26, 2015 8:48 AM -06:00 from Dan Waters <df.waters at outlook.com>:
>Hi Shamil,
>
>In a car with the steering wheel on the right, I hope the manual gear pattern is not a mirror image!  ;-)
>
>For binding forms, I create a Linq to SQL (LtS) query and set that as the form's bindingsource datasource like this:
>
>---------------------------------------------------------------------
>SIMPLE EXAMPLE
>Dim LQMain = From a In DCAppMain.tblPeopleMain
>    Where a.PeopleID = intPeopleID
>Me.tblPeopleMainBindingSource.DataSource = LQMain
>
>This is as simple as it gets.  I'm glad I initially decided to go with LtS - simple and flexible.  I only rarely use ADO code in .Net coding (i.e. delete all rows from a temp table).
>
>--------------------------------------------------------------------- 
>COMPLEX EXAMPLE
>Select Case stgDatasetFilter
>
>    Case "My Open Records"
>
>        '-- This will filter to the records where the user is the assessor and record is not closed, or where the user has been assigned to an opportunity and the opportunity is not completed and the record is in Improvement stage
>
>        '-- Assessor
>        Dim LQMyRecords1 = From a In DCAppMain.tblS5Main
>            Where a.AssessorID = SV.CurrentPersonID And a.Stage <> "Closed"
>            Select a.S5MainID, a.Stage
>
>        '-- Assignment
>        Dim LQMyRecords2 = (From b In DCAppMain.tblS5Main Join c In DCAppMain.tblS5Opportunities On b.S5MainID Equals c.S5MainID
>            Where b.Stage = "Improvement" And c.AssignedToID = SV.CurrentPersonID And c.CompletedByID = False
>            Select S5MainID = b.S5MainID, b.Stage)
>
>        Dim LQMyRecords3 = From d In LQMyRecords1.Union(LQMyRecords2)
>            Order By d.S5MainID
>            Select d.S5MainID, d.Stage
>
>        If LQMyRecords3.Any = False Then
>            stgPrompt = "There are no open 5S Records where you are the Assessor or where you are Assigned to an Opportunity."
>            MessageBox.Show(stgPrompt, "No Records", MessageBoxButtons.OK, MessageBoxIcon.Information)
>            cboShow.Text = "All Records"
>            Exit Sub
>        End If
>
>        Dim LQMyRecords4 = From d In DCAppMain.tblS5Main Join e In LQMyRecords3 On d.S5MainID Equals e.S5MainID
>            Order By d.S5MainID
>            Select d.S5MainID, d.Stage, d.AceCellID, d.AceCellSubID, d.AssessorID, d.AssessorDate, d.S5Sort, d.S5Straighten, d.S5Shine, d.S5Standardize, d.S5Sustain, d.ClosedDate
>
>        Me.TblS5MainBindingSource.DataSource = LQMyRecords4
>        Me.TblS5MainBindingSource.MoveLast()
>
>This example shows how to use LtS in a more complex way.  I've unioned querys 1 and 2 to see if any records apply to the person trying to filter the screen.  Then used query 3 joined with the Main table to finally get the form's datasource.  And, I've only shown one of the many cases a user could select to filter this screen.
>
>LtS is optimized for use with SQL Server databases to provide good performance.  Some people say that Microsoft has stopped supporting LtS - no way!  It's just that LtS is no longer a work in progress like Linq to Entities has been for the last several years.  In any case, MS would not stop supporting something that pulls together two of their premier products!
>
>Thanks!
>Dan
>
>-----Original Message-----
>From:  accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Salakhetdinov Shamil
>Sent: Monday, January 26, 2015 1:36 AM
>To: Access Developers discussion and problem solving
>Subject: Re: [AccessD] Goodbye Leszynski/Reddick?
>
> Hi Dan --
>
><<<
>Now, when working in Access VBA, I feel like I'm driving a car that doesn't have any gauges! 
>>>>
>So true.
>
><<<
>My .Net work so far is in windows forms only in VB, and those apps are very form-centric. 
>So, I just haven't seen an advantage to setting up a class for a Customer, or part, or almost anything else. 
>>>>
>Do you use .NET Windows Forms bound forms with BindingSource and BindingNavigator and ADO.NET datasets?
>
><<<
>Speaking of which, I have to go drive that car right now ... ;-)
>>>>
>That'd keep you concentrated on the road - not bad after all :) (I used to switch between a car with automatic and manual transmissions, the one with responsive driving wheel, throttle, clutch and brakes and the one with all that levers being very rigid, even used manual transmission manipulating it by my left hand while driving abroad a right-driving-wheel car keeping driving on the left side of the road - it was very refreshing! :) )
>
>Thank you.
>
>-- Shamil
>
>
>
>-- 
>AccessD mailing list
>AccessD at databaseadvisors.com
>http://databaseadvisors.com/mailman/listinfo/accessd
>Website:  http://www.databaseadvisors.com



More information about the AccessD mailing list