Red de conocimiento del abogados - Ley de patentes - Cómo encontrar datos en DataTable

Cómo encontrar datos en DataTable

1. Buscar en DataTable

1. Utilice el método Seleccionar para buscar una tabla sin una clave principal o buscar a través de un campo de clave no principal.

DataTable en sí tiene un método de selección, que devuelve una matriz de DataRow:

using (SqlConnection firstconnection = new SqlConnection(connectionstring))

{

p>

SqlCommand cmdEmployee = firstconnection.CreateCommand();

cmdEmployee.CommandText = "seleccionar * de Empleados";

SqlDataAdapter sda = new SqlDataAdapter(cmdEmployee );

p>

DataSet ds=new DataSet();

sda.Fill(ds, "Empleados");

DataRow[] dr=ds.Tables["Employees" ].Select("Title Like 'Production' ");

}

2. Utilice el método Buscar para buscar tablas con claves principales<. /p>

Hay dos situaciones:

(1) La clave principal tiene un solo campo

DataRow dr = dt.Rows.Find("valor de la clave principal field");

(2) La clave principal tiene varios campos

Por ejemplo, la clave principal de la tabla sales.SalesPersonQuotaHistory en AdventureWorks consta de 1 campo de tipo int y 1 fecha y hora. El siguiente código busca el registro "ISalesPersonD=268 and QuotaDate=2001-7-1" 0:00:00.

Objeto[] obj= nuevo Objeto[]{268, "2001-7-1 0:00:00"};

dr = dt.Rows.Find(obj) ;

2. Utilice DataView para filtrar datos

DataView se puede considerar como los datos obtenidos agregando ciertas condiciones a los registros en DataTable. DataView está adjunto a DataTable y cada DataTable tiene al menos un DataView. En el enlace de datos, el control no está vinculado a DataTable, sino a DefaultView de DataTable.

Los métodos de filtrado de datos más utilizados en DataView son:

1. Filtrar filas en un estado específico

El siguiente código encuentra todas las filas que se acaban de eliminar. :

dv.RowStateFilter = DataViewRowState.Deleted;

2. Usando la propiedad Ordenar, puede especificar una o varias columnas para ordenar, como por ejemplo:

dv.Sort = "Nombre ASC, ID DESC";

3. Utilice el atributo RowFilter para filtrar registros dinámicamente.

dv.RowFilter = "Nombre LIKE 'Zhang'";

4. Utilice Find y FindRows para buscar en DataView.

Utilizando estos dos métodos, las filas se buscan según sus valores de clave de clasificación.

El método Find devuelve un número entero que representa el índice del DataRowView que coincide con los criterios de búsqueda. Si coinciden varias filas, solo se devuelve un índice de fila coincidente, o se devuelve -1 si no se encuentra ninguna coincidencia.

Para devolver resultados de búsqueda que coincidan con varias filas, puede utilizar el método FindRows. Devuelve una matriz DataRowView de todas las filas coincidentes en DataView. Si no se encuentra ninguna coincidencia, la matriz DataRowView está vacía.

Para utilizar el método Find o FindRows, debe especificar el orden de clasificación estableciendo ApplyDefaultSort en verdadero o utilizando la propiedad Sort del objeto DataView; de lo contrario, se generará una excepción. Ambos métodos toman como entrada una matriz de valores cuya longitud coincide con el número de columnas contenidas en el orden de clasificación. Al ordenar varias columnas, los valores de la matriz de objetos deben coincidir con el orden de las columnas especificadas en la propiedad Ordenar de DataView.

Llame al método Find en un DataView con un orden de clasificación de una sola columna.

dv.Sort = "Name";

int rowIndex = dv.Find("Zhang San");

Si el atributo Ordenar especifica varias columnas, Debe pasar una matriz de objetos que contengan los valores de búsqueda para cada columna en el orden especificado por la propiedad Ordenar.

dv.Sort = "Nombre, ID";

DataRowView[] foundRows = dv.FindRows(new Object[]{"7", "Production"});

p>