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:49]
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 ====
Línea 464: Línea 494:
 CurrencyManager cm = (CurrencyManager)this.BindingContext[dsCust,"​Customers"​];​ CurrencyManager cm = (CurrencyManager)this.BindingContext[dsCust,"​Customers"​];​
 long rowPosition = (long)cm.Position; ​ long rowPosition = (long)cm.Position; ​
-</code+</code>
  
 ==== Sobre SQL y ADO.NET ==== ==== Sobre SQL y ADO.NET ====
highlevel/csharp/apps.1235407750.txt.gz · Última modificación: 2020/05/09 09:24 (editor externo)