¿Le resultó útil esta página?
Sus comentarios sobre este contenido son muy importantes. Háganos saber su opinión.
¿Tiene comentarios adicionales?
Caracteres restantes: 1500
Exportar (0) Imprimir
Expandir todo
Importante Es posible que este documento no represente los procedimientos recomendados para el desarrollo actual. Puede que los vínculos a las descargas y otros recursos ya no sean válidos. Encontrará aquí la versión que se recomienda en la actualidad.

Acceso a bases de datos (C# y Java)

C# y Java utilizan medios similares para obtener acceso a los datos de las bases de datos. Tanto C# como Java requieren que un controlador de bases de datos realice operaciones reales con bases de datos. Además, ambos requieren una conexión con la base de datos, una consulta SQL que se ejecutará en la conexión con la base de datos y un conjunto de resultados procedentes de la ejecución de la consulta.

Se pueden utilizar controladores de bases de datos, como JDBC u ODBC, para obtener acceso a datos de Java y C#. El controlador JDBC (Java Database Connectivity, conectividad de bases de datos de Java) se utiliza desde un programa escrito en Java. El controlador de ODBC (Open Database Connectivity, Conectividad abierta de bases de datos) es la interfaz de programación de base de datos que utiliza Microsoft para tener acceso a distintas bases de datos relacionales en diversas plataformas. También existe un estándar que sirve de puente entre JDBC-ODBC en las versiones Solaris y Windows de la plataforma Java, para que se pueda utilizar ODBC desde un programa Java.

En Java, se proporciona al controlador la información de la cadena de conexión para un identificador de conexión, de la siguiente forma:

final static private String url = "jdbc:oracle:server,user,pass, …)";

En C#, si se utiliza .NET Framework, no es necesario cargar controladores ODBC ni JDBC para tener acceso a la base de datos. Sólo hay que establecer la cadena de conexión para el objeto de conexión a bases de datos, de la siguiente forma:

static string connectionString = "Initial Catalog=northwind;Data Source=(local);Integrated Security=SSPI;";
static SqlConnection cn = new SqlConnection(connectionString); 

En Java, para realizar una operación de lectura de bases de datos, se puede utilizar un objeto ResultSet creado por el método executeQuery del objeto Statement. El objeto ResultSet contiene los datos devueltos por la consulta. A continuación, puede recorrer en iteración el objeto ResultSet para obtener acceso a los datos.

El ejemplo siguiente proporciona el código Java que se va a leer en una base de datos.

Connection c;
try
{
    Class.forName (_driver);
    c = DriverManager.getConnection(url, user, pass);
} 
catch (Exception e) 
{
    // Handle exceptions for DriverManager
    // and Connection creation:
}
try
{
    Statement stmt = c.createStatement();
    ResultSet results = stmt.executeQuery(
                "SELECT TEXT FROM dba ");
    while(results.next())
    {
        String s = results.getString("ColumnName");
        // Display each ColumnName value in the ResultSet:
    }
    stmt.close();
} 
catch(java.sql.SQLException e)
{
    // Handle exceptions for executeQuery and getString: 
}

Asimismo, para realizar una operación de escritura en la base de datos, se crea un objeto Statement a partir del objeto Connection. El objeto Statement tiene métodos para ejecutar consultas SQL y actualizaciones en una base de datos. Las actualizaciones y consultas se encuentran en una cadena que contiene el comando SQL de una operación de escritura que se utilizó en el método executeUpdate del objeto Statement para devolver un objeto ResultSet.

En C#, mediante .NET Framework, el acceso a los datos se simplifica aún más a través del conjunto de clases proporcionado por ADO.NET, que admite el acceso a bases de datos con los controladores ODBC, así como también, a través de proveedores OLE DB. Las aplicaciones de C# pueden interactuar con bases de datos SQL para la lectura, escritura y búsqueda de datos mediante clases ADO.NET de .NET Framework y a través de Microsoft Data Access Component (MDAC). El espacio de nombres y las clases System.Data.SqlClient de .NET Framework facilitan aún más el acceso a las bases de datos de SQL Server.

En C#, para realizar una operación de lectura de la base de datos, puede utilizar una conexión, un comando y una tabla de datos. Por ejemplo, para conectarse a una base de datos de SQL Server con el espacio de nombres System.Data.SqlClient, puede utilizar lo siguiente:

.NET Framework proporciona DataAdapter, que reúne estos tres objetos, de la siguiente forma:

  • El objeto SqlConnection se establece mediante la propiedad de conexión del objeto DataAdapter.

  • La consulta que se ejecutará se especifica con la propiedad SelectCommand de DataAdapter.

  • El objeto DataTable se crea utilizando el método Fill del objeto DataAdapter. El objeto DataTable contiene los datos del conjunto de resultados devueltos por la consulta. Puede recorrer en iteración el objeto DataTable para tener acceso a las filas de datos usando la colección de filas.

Para compilar y ejecutar el código, necesita lo que se indica a continuación; de lo contrario, se produce un error en la línea databaseConnection.Open(); y se produce una excepción.

  • Microsoft Data Access Components (MDAC) versión 2.7 o posterior.

    Si utiliza Microsoft Windows XP o Windows Server 2003, ya dispone de MDAC 2.7. Sin embargo, si utiliza Microsoft Windows 2000, es posible que tenga que actualizar la versión de MDAC instalada en el equipo. Para obtener más información, vea MDAC Installation.

  • Tener acceso a la base de datos Northwind de SQL Server y privilegios de seguridad integrados para el nombre de usuario actual que ejecuta el código en un servidor SQL Server local con la base de datos de ejemplo Northwind instalada.

// Sample C# code accessing a sample database

// You need:
//   A database connection
//   A command to execute
//   A data adapter that understands SQL databases
//   A table to hold the result set

namespace DataAccess
{
    using System.Data;
    using System.Data.SqlClient;

    class DataAccess
    {
        //This is your database connection:
        static string connectionString = "Initial Catalog=northwind;Data Source=(local);Integrated Security=SSPI;";
        static SqlConnection cn = new SqlConnection(connectionString); 

        // This is your command to execute:
        static string sCommand = "SELECT TOP 10 Lastname FROM Employees ORDER BY EmployeeID";

        // This is your data adapter that understands SQL databases:
        static SqlDataAdapter da = new SqlDataAdapter(sCommand, cn);

        // This is your table to hold the result set:
        static DataTable dataTable = new DataTable();

        static void Main()
        {
            try
            {
                cn.Open();

                // Fill the data table with select statement's query results:
                int recordsAffected = da.Fill(dataTable);

                if (recordsAffected > 0) 
                {
                    foreach (DataRow dr in dataTable.Rows)
                    {
                        System.Console.WriteLine(dr[0]);
                    }
                }
            }
            catch (SqlException e) 
            {
                string msg = "";
                for (int i=0; i < e.Errors.Count; i++)
                {
                    msg += "Error #" + i + " Message: " + e.Errors[i].Message + "\n";
                }
                System.Console.WriteLine(msg);
            }
            finally
            {
                if (cn.State != ConnectionState.Closed)
                {
                    cn.Close();
                }
            }
        }
    }
}

Para obtener más información sobre ADO.NET, vea:

Para obtener más información sobre las clases de acceso a bases de datos de .NET Framework, vea:

Para obtener más información sobre el Ayudante para la conversión del lenguaje Java, vea Lo nuevo en el Ayudante para la conversión del lenguaje Java 3.0.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2015 Microsoft