dentro de la clase he creado el método ConectarYa y he puesto que no retorne nada, es correcto o tiene que retornar algo?
me gustaría saber si hace falta que esa clase retorne algo o como va la cosa
La clase que estás instanciando,
MySqlConnection, representa la conexión a la base de datos MySql que vas a abrir, y además es una clase
disposable (utiliza recursos no administrados que deberían ser liberados cuando ya no se los necesite usar más), con esto ya tienes dos motivos fundamentales por los cuales deberías devolver la instancia de esa clase.
Había pensado en poner return HacerConexion.Open() pero no sabría de que tipo es el retorno
Estás en Visual Studio, la IDE más completa y sofisticada en el mundo de la programación (¡tenlo presente!), ante la duda tan solo tienes que posicionar el puntero del ratón sobre el nombre del miembro ("Open") y la característica Intellisense de Microsoft te mostrará un
tooltip diciéndote de que tipo es el miembro, o en caso de una función que tipo de valor de retorno devuelve... en este caso ninguno, puesto que
MySqlConnection.Open() es un método sin valor de retorno.
he creado una clase para hacer la conexión a la base de datos y poder reutilizarla cuantas veces quiera
Una clase cuyo propósito sea proveer métodos de uso genérico, por lo general debe ser una clase "sellada" (es decir, no heredable).
sealed class ConexionDBAdemás deberías declarar un constructor de accesibilidad privada para impedir que la clase pueda ser instanciada por equivocación. [/quote]
private ConexionDB() { }Y por ese último motivo que acabo de mencionar, los métodos de uso genérico deberían tener una accesibilidad global.
public static void ConectarYa()En general aquí abajo te muestro buenas prácticas de diseño que se deberían seguir según lo estipula en las directrices de diseño de Microsoft:
#region " usings "
using System.Diagnostics;
using MySql.Data.MySqlClient;
#endregion
namespace MySqlUtils {
/// <summary>
/// Contains helper methods for a <c>MySQL</c> database.
/// </summary>
public sealed class DatabaseHelper {
#region " Constructors "
[DebuggerNonUserCode()]
private DatabaseHelper() { }
#endregion
#region " Public Methods "
/// ----------------------------------------------------------------------------------------------------
/// <summary>
/// Establishes a connection to a <c>MySQL</c> Server database using the specified connection string.
/// </summary>
/// ----------------------------------------------------------------------------------------------------
/// <example> This is a code example.
/// <code>
/// using (MySqlConnection connection = GetConnection("server=localhost; userid=x; password=x; database=x")) {
/// // ...
/// }
/// </code>
/// </example>
/// ----------------------------------------------------------------------------------------------------
/// <param name="connectionString">
/// The connection string used to open the <c>MySQL</c> database.
/// </param>
/// ----------------------------------------------------------------------------------------------------
/// <returns>
/// A <see cref="MySqlConnection"/> instance that represents the connection established with the <see cref="MySQL"/> database.
/// </returns>
/// ----------------------------------------------------------------------------------------------------
[DebuggerStepThrough()]
public static MySqlConnection GetConnection(string connectionString) {
MySqlConnection connection
= new MySqlConnection
(connectionString
); connection.Open();
return connection;
}
#endregion
}
}
Ejemplo de llamada:
MySqlConnection db = MySqlUtil.DatabaseHelper.GetConnection("MySQL query");
Si intentas hacer las cosas más o menos similar entonces estarás avanzando a pasos de gigante en el "nivel principiante", la estructurización/diseño es fundamental, te ayudará en todo, sobre todo a ser mas analítico o metódico. La documentación Xml es muy util y recomendable pero bueno si te parece algo muy tedioso de realizar entonces lo puedes ignorar, yo es que soy un maniático y un cansino del perfeccionismo, pero no te fijes en los tochos de documentación sino en la estructurización de todo lo demás... y en las nomenclaturas de los miembros, muy importante también (deberías intentar no escribir absolutamente nada en Español... ¡ni siquiera los commentarios!)
PD: Esto ha sido solo un consejo personal para intentar ayudarte un poco a que descubras como poder mejorar tus modelos, es mi opinión la cual se puede aceptar o rechazar sin problema; ¡que cada cual aprenda a programar como prefiera!.
¡Saludos!