Well, I've browsed around a bit and this is what I've found: private void button1_Click(object sender, EventArgs e) { int ID; testDS.tblTestRow selectedRow; selectedRow = (testDS.tblTestRow)((DataRowView)bsTest.Current).Row; ID = selectedRow.ID; MessageBox.Show(ID.ToString()); } And other thing that filters these rows: private void txtName_textchange(object sender, EventArgs e) { string filter = "NAME like '" + txtName.Text + "%'"; bsTest.Filter = filter; bsTest is BindingSource, and testDS is DataSet (could be single table - DataTable, doesen't matter) - but I don't know how to do it without BindingSource.