I. Resumen
-
La función de la clase DataReader en C # es leer los resultados de la consulta, que se utiliza con el método ExecuteReader en la clase Command introducida en las operaciones de la base de datos de C #
-
Esta sección presenta las propiedades y métodos de uso común en la clase DataReader, y cómo usar esta clase para consultar los datos en la tabla.
<! - más ->
Dos descripción general de la clase DataReader
2.1 Descripción general de DataReader
La clase DataReader está en el espacio de nombres System.Data.SqlClient y la clase correspondiente es SqlDataReader, que se usa principalmente para leer los resultados de la consulta en la tabla y se lee en modo de solo lectura (es decir, los datos almacenados en el DataReader no se pueden modificar).
Es precisamente debido al método de lectura especial de la clase DataReader que puede acceder a los datos más rápido y ocupa menos recursos del servidor.
2.2 Atributos y métodos de uso común
Atributo o método | Descripción |
---|---|
FieldCount | Propiedad para obtener el número de columnas en la fila actual |
HasRows | Propiedad para obtener si el DataReader contiene datos |
Está cerrado | Propiedad para obtener si el estado del DataReader está cerrado |
Leer | Método para avanzar el objeto DataReader al siguiente registro |
Cerca | Método para cerrar el objeto DataReader |
Obtener XXX (int i) | Método, obtenga el valor de la columna especificada, donde XXX representa el tipo de datos. Por ejemplo, para obtener el valor del tipo double en la primera columna de la fila actual, el método es GetDouble (o) |
Tres usan la clase DataReader para leer los resultados de la consulta
Cuando use la clase DataReader para leer los resultados de la consulta, debe prestar atención. Cuando solo hay un resultado de la consulta, puede usar la instrucción if para consultar los datos en el objeto DataReader. Si el valor de retorno son varios datos, debe recorrer los datos en el objeto DataReader a través de la instrucción while.
Al usar la clase DataReader para leer los resultados de la consulta, debe completar los siguientes pasos:
3.1 Ejecute el método ExecuteReader en el objeto SqlCommand
SqlDataReader dr = instancia de clase SqlCommand.ExecuteReader ();
3.2 Recorrer los resultados en SqlDataReader
El método Read proporcionado en la clase SqlDataReader se usa para determinar si tiene un valor y apunta al siguiente registro en el resultado de SqlDataReader.
dr.Read ()
Si el valor devuelto es Verdadero, el registro se puede leer; de lo contrario, no se puede leer.
Al leer registros, lea las columnas correspondientes en la tabla según el tipo de datos en la tabla.
3.3 Cerrar SqlDataReader
Cierre el flujo de datos después de que se complete la operación
Cuatro ejemplos consultan el número y la contraseña del usuario de acuerdo con el nombre del usuario y muestran el número y la contraseña en el control de la etiqueta (Etiqueta)
4.1 Disposición de la interfaz
Contiene los siguientes componentes:
-
Nombre de usuario: Etiqueta
-
Cuadro de entrada: TextBox
-
Botón de consulta: botón
-
Resultado de la consulta: etiqueta
4.2 Código (consulta)
private void button1_Click (object sender, EventArgs e) { // Escribe la cadena de conexión de la base de datos connStr = "Data Source = .; Initial Catalog = test; User ID = sa; Password = root"; // Crea una instancia de SqlConnection SqlConnection conn = null; // Definir el objeto de la clase SqlDataReader SqlDataReader dr = null; try { conn = new SqlConnection (connStr); // Abrir la conexión a la base de datos conn.Open (); string sql = "select id, password from userinfo donde name = '{ 0} '"; // Complete la instrucción SQL sql = string.Format (sql, textBox1.Text); // Cree el objeto SqlCommand SqlCommand cmd = new SqlCommand (sql, conn); // Ejecute la instrucción Sql dr = cmd.ExecuteReader ( ); // Determinar si la declaración SQL se ejecuta correctamente si (dr.Read ()) { // Leer el ID de usuario y la contraseña correspondientes al nombre de usuario especificado string msg = "User ID:" + dr [0] + "Password:" + dr [1]; // Mostrar el valor de msg en la etiqueta label2.Text = msg; } else { label2.Text = "Ningún resultado cumple las condiciones"; } } catch (Exception ex) { MessageBox.Show ("La consulta falló ! "+ ex.Message); } finalmente { if (dr! = null) { // Juzgando que dr no está vacío, cierre el objeto SqlDataReader dr.Close (); } if (conn! = null) { // Cerrar la conexión a la base de datos conn.Close (); } }
4.3 Imagen de efecto
4.4 Descripción
Se puede ver en el efecto de ejecución anterior que el número de usuario correspondiente al usuario "Zhang San" es 1 y la contraseña es 123456.
Cabe señalar que el requisito para lograr las funciones anteriores es que el nombre de usuario en la tabla de usuarios sea único para evitar errores de consulta.