Este es mi primer post en StackOverflow, así que por favor sea amable ...ADO.NET Buenas Prácticas para la conexión y objetos DataAdaptor Ámbito
Tengo algunas preguntas con respecto ámbito de los objetos para ADO.NET.
Cuando conecto a una base de datos, que suelen utilizar código como el siguiente:
OleDbConnection conn = new OleDbConnection("my_connection_string");
conn.Open();
OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT * from Employees", conn);
OleDbCommandBuilder cb = new OleDbCommandBuilder(adapter);
DataTable dt = new DataTable();
adapter.Fill(dt);
conn.Close();
conn.Dispose();
Digamos que Ato DataTable resultante a un control de la red y permitir que mis usuarios editar el contenido de la cuadrícula. Ahora, cuando mis usuarios presionan un botón Guardar, necesito llamar a este código:
adapter.Update(dt);
Aquí están mis preguntas:
1) ¿Es necesario para retener el objeto adaptador que creé cuando originalmente cargada la tabla de datos, o puedo crear otro objeto adaptador en el evento de clic del botón Guardar para realizar la actualización?
2) Si necesito conservar el objeto adaptador original, ¿también necesito mantener el objeto de conexión disponible y abierto?
Entiendo el modelo desconectado de ADO.NET - Estoy confundido en el ámbito del objeto cuando es el momento de actualizar la base de datos. Si alguien pudiera darme algunos consejos sobre las mejores prácticas para este escenario, ¡lo agradecería enormemente!
Gracias de antemano ...
Los adaptadores de datos pueden abrir conexiones implícitamente, ahora no estoy seguro de hacer esto dentro de una instrucción using, pero ¿no podría simplemente dejar caer la línea conn.Open() y dejar que el adaptador de datos abra la conexión? – GordonB
Buen punto. Incluso lo mencioné en 2). :-) Actualizaré el código ejemplo –
¿Puede el adaptador de datos ser una buena opción en caso de arrojar millones de registros (por ejemplo: 2-3 millones de registros que tengo en mi datatable) en la base de datos? –