|
dev
newsgroups
|
|||||||||||||||||||||||
|
|||||||||||||||||||||||
Discrepancy in DataGridView column order & databound DataTableI'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 Mike,
The datagridview is actually bound to the datatable's defaultview. That will have the records in the right order. Ken ---------------------------- Show quote "Mike" <none> wrote in message news:uvbGZuAsGHA.4004@TK2MSFTNGP02.phx.gbl... > 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] wrote:
Show quote > Mike, Wow, thanx, that clears something up for me too.> > The datagridview is actually bound to the datatable's defaultview. > That will have the records in the right order. > > Ken > ---------------------------- > "Mike" <none> wrote in message news:uvbGZuAsGHA.4004@TK2MSFTNGP02.phx.gbl... > > 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 > > 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. "Brian Tkatch" <Maxwell_Sm***@ThePentagon.com> wrote in message Ahhh, thank you. I think that will solve it.news:1153919429.516152.4290@m79g2000cwm.googlegroups.com... > > Ken Tucker [MVP] wrote: >> Mike, >> >> The datagridview is actually bound to the datatable's >> defaultview. >> That will have the records in the right order. Show quote >> ---------------------------- ^ Great example too. I'll have to do some recoding tonight. If any MSDN >> "Mike" <none> wrote in message >> news:uvbGZuAsGHA.4004@TK2MSFTNGP02.phx.gbl... >> > 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 >> > > > 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 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 |
|||||||||||||||||||||||