Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsFree MagazinesWhite PapersSubmit Content
Discussion GroupsASP.NETWindows FormsLanguages.NET FrameworkVisual Studio.NET
Articles.NET FrameworkASP.NETToolsWindows Forms
.NET DirectoryOpen Source ProjectsUser GroupsWeb Resources
Related Topics
Visual Basic 6SQL ServerMS AccessOther DB ProductsMS Server ProductsMore Topics ...

.NET Forum / .NET Framework / New Users / July 2006

Tip: Looking for answers? Try searching our database.

Discrepancy in DataGridView column order & databound DataTable

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
Mike - 25 Jul 2006 17:58 GMT
Dear group,

I'm currrently investigating a bug within a piece of our software whereby if
a DataGridView (bound directly to a DataTable) is ordered by column headers
(containing lookup combo boxes where the value is the foreign key of another
table), although the DataGridView is ok, the DataTable becomes out of sync.

In other words, I have a Grid of customers, and if a customer name column
header is clicked - the data moves in the DataGridView, but previous data is
still held for the original row positions in the DataTable.

This throws off row calculations quite considerably, and is a particularly
fustrating bug to debug.

Any ideas are most welcome, and thanks in advance for any advice.

Regards,

Mike
Ken Tucker [MVP] - 26 Jul 2006 03:08 GMT
Mike,

       The datagridview is actually bound to the datatable's defaultview.
That will have the records in the right order.

Ken
----------------------------
> Dear group,
>
[quoted text clipped - 16 lines]
>
> Mike
Brian Tkatch - 26 Jul 2006 14:10 GMT
> Mike,
>
[quoted text clipped - 23 lines]
> >
> > Mike

Wow, thanx, that clears something up for me too.

BTW, a way to simply test this would be to add a DataGridView, three
textboxes and a button. Then the following code:

   Dim table As New DataTable

   Private Sub Form1_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load

       Dim row As DataRow

       table.Columns.Add()

       row = table.NewRow
       table.Rows.Add(row)
       row(0) = "A"

       row = table.NewRow
       table.Rows.Add(row)
       row(0) = "B"

       DataGridView1.DataSource = table

   End Sub

   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
       TextBox1.Text = DataGridView1.Item(0, 0).Value.ToString
       TextBox2.Text = table.Rows(0)(0).ToString
       TextBox3.Text = table.DefaultView.Item(0)(0).ToString
   End Sub

B.
Mike - 27 Jul 2006 17:38 GMT
>> Mike,
>>
>>         The datagridview is actually bound to the datatable's
>> defaultview.
>> That will have the records in the right order.

Ahhh, thank you. I think that will solve it.

>> ----------------------------
>> > Dear group,
[quoted text clipped - 25 lines]
>
> Wow, thanx, that clears something up for me too.

>    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
> System.EventArgs) Handles Button1.Click
>        TextBox1.Text = DataGridView1.Item(0, 0).Value.ToString
>        TextBox2.Text = table.Rows(0)(0).ToString
>        TextBox3.Text = table.DefaultView.Item(0)(0).ToString
>    End Sub

^ Great example too. I'll have to do some recoding tonight. If any MSDN
article authors are reading this; this has got to be somewhere that a LOT of
people trip up on, but very little example documentation alludes to using
the .DefaultView.

Thanks!

Mike

Rate this thread:







Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.