Herramientas de usuario

Herramientas del sitio


highlevel:csharp:apps

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
highlevel:csharp:apps [2009/02/23 16:28]
alfred
highlevel:csharp:apps [2020/05/09 09:25] (actual)
Línea 427: Línea 427:
  
 ===== Acceso a datos ===== ===== Acceso a datos =====
 +
 +
  
  
Línea 452: Línea 454:
 Ver ejemplos [[highlevel:​csharp:​snippets#​trabajar_con_fuentes_de_datos|aquí]]. Ver ejemplos [[highlevel:​csharp:​snippets#​trabajar_con_fuentes_de_datos|aquí]].
  
 +=== Cómo hacer una petición a BD? ===
 +Para acceder a una DB MSSQLServer (por ejemplo) necesitaremos utilizar las clases que están dentro del namespace ''​System.Data.SqlClient''​ siguiendo los siguientes pasos:
 +  - Crear conexión, inicializando un objeto ''​SqlConnection''​ a partir de una ''​ConnectionString''​.
 +  - Abrir la conexión llamando al método ''​Open''​ del ''​SqlConnection''​.
 +  - Crear un objeto ''​SqlCommand'',​ que será el que contenga la consulta a realizar sobre la DB. Se le ha de pasar la conexión.
 +  - Ejecutar el ''​SqlCommand'':​
 +    - Mediante el método ''​ExecuteReader''​. Que devuelve un ''​DataReader''​ del cual se podrán ir recogiendo los valores mientras el método ''​Read''​ devuelva ''​true''​.
 +    - Mediante el método ''​ExecuteNonQuery''​. Que devuelve el número de filas afectadas, para consultas que no sean //selects// sino //​inserts//,​ //​updates//​...
 +<code csharp>
 +SqlConnection con = new SqlConnection(@"​Data Source=VALLIRANA\ALSQLEXP;​Initial Catalog=prueba;​Integrated Security=True"​);​
 +con.Open();
 +SqlCommand cmd = new SqlCommand("​select * from personas",​ con);
 +SqlDataReader dr = cmd.ExecuteReader();​
 +while (dr.Read())
 +    Console.WriteLine("​Nombre:​ {0}", String.Format(dr.GetValue(0).ToString()));​
 +</​code>​
 +=== Trabajar con Interfaces ===
 +Las clases que envuelven la conexión a datos heredan de diversas interfaces las cuales nos pueden permitir realizar las consultas de forma global, independientemente del motor de base de datos. Algunas de estas interfaces son: ''​IDbConnection'',​ ''​IDbCommand''​ o ''​IDataReader''​. Por ejemplo las utilizaríamos así:
 +<code csharp>
 +IDbConnection connection = new SqliteConnection(connectionString); ​ // Aquí podríamos haber creado un OracleClient
 +connection.Open();​
 +IDbCommand cmd = this.connection.CreateCommand();​
 +cmd.CommandText = query;
 +this.reader = cmd.ExecuteReader(); ​ // O ExecuteNonQuery si no es un Select
 +while (reader.Read())
 +{ ... }
 +reader.Close();​
 +connection.Close();​
 +</​code>​
  
 ==== DataBinding ==== ==== DataBinding ====
-Es la capacidad de enlazar campos de un formulario con los datos que provienen de una DB.+Es la capacidad de enlazar ​automáticamente ​campos de un formulario con los datos que provienen de una DB. \\  
 +El ejemplo más sencillo es el de un TextBox denominado ''​txtBox'',​ para asignarle el campo ''​FirstName''​ de la tabla ''​Customers''​ que es del tipo "​Text"​ y lo encontramos en el ''​DataSet''​ denominado ''​dsCust''​. 
 +<code csharp>​ 
 +txtBox.DataBindings.Add("​Text",​dsCust,"​Customers.FirstName"​);​ 
 +</​code>​ 
 +Para coger la posición actual utilizaremos la clase ''​CurrencyManager'':​ 
 +<code csharp>​ 
 +CurrencyManager cm = (CurrencyManager)this.BindingContext[dsCust,"​Customers"​];​ 
 +long rowPosition = (long)cm.Position;​  
 +</​code>​
  
 ==== Sobre SQL y ADO.NET ==== ==== Sobre SQL y ADO.NET ====
highlevel/csharp/apps.1235406485.txt.gz · Última modificación: 2020/05/09 09:24 (editor externo)