una seleccionar registro primary fila ejemplos buscar c# datatable datarow

c# - seleccionar - Encontrar fila en datatable con id específico



find row in datatable c# (8)

Tengo dos columnas en un datatable:

ID, Calls.

¿Cómo encuentro cuál es el valor de Llamadas where ID = 5 ?

5 podría ser cualquier número, es solo por ejemplo. Cada fila tiene una identificación única.


Haz una cadena de criterios para buscar, como esto:

string searchExpression = "ID = 5"

Luego use el método .Select() del objeto DataTable , como este:

DataRow[] foundRows = YourDataTable.Select(searchExpression);

Ahora puedes recorrer los resultados, así:

int numberOfCalls; bool result; foreach(DataRow dr in foundRows) { // Get value of Calls here result = Int32.TryParse(dr["Calls"], out numberOfCalls); // Optionally, you can check the result of the attempted try parse here // and do something if you wish if(result) { // Try parse to 32-bit integer worked } else { // Try parse to 32-bit integer failed } }


Hola, simplemente cree una función simple que se vea como se muestra a continuación. Eso devuelve todas las filas donde el parámetro de llamada ingresado es válido o verdadero.

public DataTable SearchRecords(string Col1, DataTable RecordDT_, int KeyWORD) { TempTable = RecordDT_; DataView DV = new DataView(TempTable); DV.RowFilter = string.Format(string.Format("Convert({0},''System.String'')",Col1) + " LIKE ''{0}''", KeyWORD); return DV.ToTable(); }

y simplemente llámelo como se muestra abajo;

DataTable RowsFound=SearchRecords("IdColumn", OriginalTable,5);

donde 5 es el ID. Gracias..


Intenta evitar los bucles innecesarios y ve por esto si es necesario.

string SearchByColumn = "ColumnName=" + value; DataRow[] hasRows = currentDataTable.Select(SearchByColumn); if (hasRows.Length == 0) { //your logic goes here } else { //your logic goes here }

Si desea buscar por ID específico, debe haber una clave principal en una tabla.


Podría usar el siguiente código. Gracias a todos.

int intID = 5; DataTable Dt = MyFuctions.GetData(); Dt.PrimaryKey = new DataColumn[] { Dt.Columns["ID"] }; DataRow Drw = Dt.Rows.Find(intID); if (Drw != null) Dt.Rows.Remove(Drw);


Puedes probar con el método seleccionado

DataRow[] rows = table.Select("ID = 7");


Puedes usar LINQ para DataSet / DataTable

var rows = dt.AsEnumerable() .Where(r=> r.Field<int>("ID") == 5);

Debido a que cada fila tiene una ID única, debe usar Single/SingleOrDefault que generaría una excepción si obtiene varios registros.

DataRow dr = dt.AsEnumerable() .SingleOrDefault(r=> r.Field<int>("ID") == 5);

(Sustituya int por el tipo de su campo de ID)


prueba este código

DataRow foundRow = FinalDt.Rows.Find(Value);

pero establecido al menos una clave primaria


DataRow dataRow = dataTable.AsEnumerable().FirstOrDefault(r => Convert.ToInt32(r["ID"]) == 5); if (dataRow != null) { // code }

Si es un conjunto de datos escrito:

MyDatasetType.MyDataTableRow dataRow = dataSet.MyDataTable.FirstOrDefault(r => r.ID == 5); if (dataRow != null) { // code }