0

Like the title says, I have about 10-15 rows in a local dataset. I need to take any one row, and make it the "default" (on a button click), meaning to take that row and stick it right at the top so it comes up first.

I've been up and down the web for a few days looking at ideas, but I can't get around this one. Do I create a new row at the top, then have it copy the info over, then delete the old row, or is there a cleaner way of doing it? Does anyone have a code snippet they'd like to share?

Thanks in advance!

3
Contributors
4
Replies
9
Views
5 Years
Discussion Span
Last Post by mrbungle
Featured Replies
  • Try this code: [CODE] Private table As DataTable Public Sub New() InitializeComponent() table = New DataTable("myTable") table.Columns.Add("column 1", GetType(String)) table.Columns.Add("column 2", GetType(String)) table.Rows.Add("a1", "b1") table.Rows.Add("a2", "b2") table.Rows.Add("a3", "b3") table.Rows.Add("a4", "b4") dataGridView1.DataSource = New BindingSource(table, Nothing) End Sub Private Sub button1_Click(sender As Object, e As EventArgs) Dim selectedRow As DataRow = … Read More

1

Try this code:

Private table As DataTable
Public Sub New()
	InitializeComponent()

	table = New DataTable("myTable")
	table.Columns.Add("column 1", GetType(String))
	table.Columns.Add("column 2", GetType(String))
	table.Rows.Add("a1", "b1")
	table.Rows.Add("a2", "b2")
	table.Rows.Add("a3", "b3")
	table.Rows.Add("a4", "b4")
	dataGridView1.DataSource = New BindingSource(table, Nothing)
End Sub

Private Sub button1_Click(sender As Object, e As EventArgs)
	Dim selectedRow As DataRow = table.Rows(dataGridView1.CurrentRow.Index)
	Dim newRow As DataRow = table.NewRow()
	newRow.ItemArray = selectedRow.ItemArray
	' copy data
	table.Rows.Remove(selectedRow)
	table.Rows.InsertAt(newRow, 0)
End Sub

as you can see the dataTable is bound to datagridview, so you can see the actual results, when selecting a row and pressing a button. The selected row will move to the top of DGV (the same as in dataTable).
If you want to use the code in dataSet, just create is, and add a dataTable to it.

Comments
Thanks for your help and time! Good code!
0

Good snippet- thanks for that

Quick question- I'm a bit stuck on something-

I have this-

table = New DataTable("OfficerInformation")
        table.Columns.Add("Officer", GetType(String))
        table.Columns.Add("Agency", GetType(String))
        table.Columns.Add("Supervisor", GetType(String))

I'm confused on this part-

table.Rows.Add("a1", "b1")
	table.Rows.Add("a2", "b2")

Those values- what are they? I have 15 columns in a single row, with what could be tens of rows.

0

Mitja Bonca was adding records to the datatable with this part of code, same as with the columns.
If you have the data in a dataset, you don't need to add them manually to your datatable.

0

Ahhh, gotcha. I was wondering about that also. Thanks for the code, I'm working on it now.

This question has already been answered. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.