Perdón, pensé que con ese código sería suficiente. Aquí está el DALSQLServer.cs
Código C#:
Ver originalnamespace Tarea.Capas.CapaAccesoDatos
{
/// <summary>
/// Descripción breve de DALSQLServer
/// </summary>
public class DALSQLServer
{
private String _connectionString;
private String _sqlCommand;
SqlConnection objetoConnection;
SqlCommand objetoCommand;
/// <summary>
/// Obtiene o establece el comando que se ejecutará sobre una tabla
/// </summary>
public String SqlCommand
{
get { return _sqlCommand; }
set { _sqlCommand = value; }
}
/// <summary>
/// Se especifica la cadena de conexión a la base de datos
/// </summary>
public String ConnectionString
{
get { return _connectionString; }
set { _connectionString = value; }
}
/// <summary>
/// Ejecuta comandos INSERT, UPDATE y DELETE
/// </summary>
/// <returns>Retorna la cantidad de filas afectadas</returns>
public int ExecuteNonQuery()
{
int iResultado = 0;
if (objetoConnection == null)
objetoConnection = new SqlConnection();
try
{
objetoConnection.ConnectionString = _connectionString;
objetoConnection.Open();
if (objetoConnection.State == ConnectionState.Open)
{
objetoCommand = new SqlCommand();
objetoCommand.Connection = objetoConnection;
objetoCommand.CommandType = CommandType.Text;
objetoCommand.CommandText = _sqlCommand;
iResultado = objetoCommand.ExecuteNonQuery();
}
}
catch (Exception ex)
{
iResultado = -1;
}
finally
{
//si el estado de conexión es open, cierra la conexión
if (objetoConnection.State == ConnectionState.Open)
objetoConnection.Close();
objetoConnection = null;
objetoCommand = null;
}
return iResultado;
}
/// <summary>
/// Ejecuta consultas SELECT
/// </summary>
/// <returns></returns>
public DataSet ExecuteQuery()
{
DataSet ds = new DataSet();
SqlDataAdapter objetoAdapter = null;
if (objetoConnection == null)
objetoConnection = new SqlConnection();
try
{
objetoConnection.ConnectionString = _connectionString;
objetoConnection.Open();
if (objetoConnection.State == ConnectionState.Open)
{
objetoAdapter = new SqlDataAdapter();
objetoCommand = new SqlCommand();
objetoCommand.Connection = objetoConnection;
objetoCommand.CommandType = CommandType.Text;
objetoCommand.CommandText = _sqlCommand;
objetoAdapter.SelectCommand = objetoCommand;
objetoAdapter.Fill(ds);
}
}
catch (Exception ex)
{
ds = null;
}
finally
{
//si el estado de conexión es open, cierra la conexión
if (objetoConnection.State == ConnectionState.Open)
objetoConnection.Close();
objetoConnection = null;
objetoCommand = null;
}
return ds;
}
/// <summary>
/// Constructor de la clase
/// </summary>
public DALSQLServer()
{
_connectionString = "";
_sqlCommand = "";
objetoConnection = null;
objetoCommand = null;
}
public DALSQLServer(String connectionString,String sqlComand)
{
_connectionString = connectionString;
_sqlCommand = sqlComand;
objetoConnection = null;
objetoCommand = null;
}
}
}
Con respecto al punto de interrupción, lo marco, apreto la flecha en modo debug, y me dice que el código fuente original es distinto, así que no se detiene en el breakpoint, y me tira el error -.-.
Con respecto al DataTable, tengo otro ejemplo funcional, en el cual uso la misma forma de devolver los datos del tipo List<> sin DataTable, y nunca me lanzó ese error... He visto aquel ejemplo, y tengo prácticamente lo mismo... Quizá la consulta no se está ejecutando y me devuelve nulo... Pero la verdad no lo sé...
Agradezco sus respuestas, seguiré intentando.