Programación avanzada en C#: Lector de datos[1]
——Este artículo es un extracto de "Programación avanzada de C# (edición)" con un precio de 1000 RMB, precio especial de compra de 10 000 RMB
Un lector de datos selecciona ciertos datos de una fuente de datos El método de datos más simple y rápido, pero también es el método más débil. No se puede crear una instancia del lector de datos directamente, es decir, la instancia se devuelve desde el objeto de comando de la base de datos correspondiente después de llamar al método ExecuteReader (). >
El siguiente código ilustra cómo seleccionar datos de la tabla Cliente en la base de datos Northwind. Este ejemplo se conecta a la base de datos, selecciona muchos registros, recorre los registros seleccionados y los imprime en la consola.
Este ejemplo utiliza el proveedor OLE DB como un breve búfer de datos del proveedor SQL. En la mayoría de los casos, la clase OleDbClient tiene una relación uno a uno con la clase SqlClient. Por ejemplo, el objeto OleDbConnection. Objeto SqlConnection utilizado en el ejemplo anterior.
Para ejecutar un comando contra una fuente de datos OLE DB, debe usar la clase OleDbCommand. El siguiente código ejecuta una instrucción SQL simple para leer los registros y devuelve un objeto OleDbDataReader. /p>
Tenga en cuenta que la segunda declaración de uso a continuación hace que la clase OleDb esté disponible usando System Data OleDb
Todos los proveedores de datos utilizados actualmente están en la misma DLL; , por lo que solo necesita hacer referencia al conjunto dll de datos del sistema para importar todos los proveedores de datos utilizados en esta sección. Class public class DataReaderExample { ? public static void Main(string[] args) { ? ? servidor=(local)\\NetSDK; + ? seguridad integrada=SSPI; + ? base de datos=northwind ? OleDbCommand cmd = new OleDbCommand(seleccione conexión); ); ? conn Close(); ? } } El código anterior contiene muchas características familiares de C# introducidas en otros capítulos. Función Para compilar este ejemplo, utilice el siguiente comando csc /t:exe /debug+ DataReaderExample cs /r:System Data dll. En el ejemplo anterior, el siguiente código crea una nueva conexión de base de datos OLE DB NET basada en la cadena de conexión de origen. OleDbConnection conn = new OleDbConnection(source ? OleDbCommand cmd = new OleDbCommand(select conn);
La tercera línea se basa en el Sel específico.
La declaración ect crea un nuevo objeto OleDbCommand y la conexión de base de datos utilizada para ejecutar el comando. Cuando hay un comando válido, es necesario ejecutarlo. Devuelve un OleDbDataReader inicializado aReader = cmd ExecuteReader(); p> OleDbDataReader es un cursor de conexión de solo avance que solo puede atravesar registros en una dirección y la conexión de la base de datos utilizada permanece abierta hasta que se cierra el DataReader
Consejo OleDbDataReader mantendrá abierta la conexión de la base de datos hasta que se cierre explícitamente
No se puede crear una instancia de la clase OleDbDataReader directamente. Siempre se devuelve a través de la llamada al método ExecuteReader de la clase OleDbCommand. Después de abrir un lector de datos, puede acceder a los datos contenidos en el lector de varias maneras
p>.Cuando se cierra un objeto OleDbDataReader (ya sea llamando explícitamente a Close() o recogiendo el objeto a través del recolector de basura), la conexión subyacente también se cierra. Esto depende de qué método ExecuteReader() se llamó. ) se llamó y se pasó el método CommandBehavior CloseConnection cerrará la conexión al cerrar el lector
¿La clase OleDbDataReader tiene un indexador que puede acceder a cualquier campo usando una sintaxis de matriz común (pero no un acceso de tipo seguro al objeto o =)? aReader[];? objeto o = aReader[ CategoryID ]; lishixinzhi/Article/program/net/201311/15406