Escolar Documentos
Profissional Documentos
Cultura Documentos
Tutorial bsico
M.C. Andrs Gerardo Fuentes Covarrubias M.C. Ricardo Fuentes Covarrubias
Pasos bsicos
Instalar .Net FW 3.5 Instalar PowerShell Instalar SQLServer Express 2008 con Management Studio incluido
De forma predeterminada, SQL Server Express instala una instancia con nombre sqlexpress.
Pruebe con el comando: >sqlcmd S localhost\SQLExpress
A. Gerardo Fuentes Covarrubias 3
Para iniciar la utilidad sqlcmd y conectar con una instancia predeterminada de SQL Server:
En el men Inicio, haga clic en Ejecutar. En el cuadro Abrir, escriba cmd y, a continuacin, haga clic en Aceptar para abrir una ventana del smbolo del sistema. En el smbolo del sistema, escriba sqlcmd. Presione <ENTER>. Ahora tiene una conexin de confianza con la instancia predeterminada de SQL Server que se est ejecutando en el equipo. 1> es el comando sqlcmd que especifica el nmero de lnea. Cada vez que presione ENTER, el nmero se incrementar en uno. Para finalizar la sesin de sqlcmd, escriba EXIT en el comando sqlcmd.
Para iniciar la utilidad sqlcmd y conectar con una instancia con nombre de SQL Server:
Abra una ventana del smbolo del sistema y escriba >sqlcmd S miServidor\nombreDeInstancia. Reemplace miServidor\nombreDeInstancia con el nombre del equipo y la instancia de SQL Server a la que desea conectarse. Por ejemplo: >sqlcmd S localhost\SQLExpress
Presione ENTRAR. El comando sqlcmd (1>) indica que est conectado con la instancia especificada de SQL Server. Las instrucciones Transact-SQL escritas estn almacenadas en un bfer. Se ejecutan como un lote cuando se encuentra el comando GO.
10
11
12
13
15
Posibles errores:
Es comn que las BD dejen conexiones abiertas, en cuyo caso habr que dar mantenimiento, esto puede ser mediante el Management Studio o por medio del slqCMD desde la lnea de ordenes.
16
Posibles errores:(tpico)
Database bd_telefonos cannot be opened due to inaccessible files or insufficient memory or disk space. See the SQL Server errorlog for details. Errores de acceso impiden que una BD sea correctamente cerrada en su conexin lo cual la mantiene en un estado de transaccin pendiente. La conexin no saldr de ese estado hasta que sea restablecida.
17
Posibles errores:(tpico)
Use el comando:
SELECT name, state_desc FROM sys.databases Para conocer el estado que guardan las bases de datos relacionadas con una instancia en particular, la diapositiva siguiente ilustra el resultado del comando.
18
Posibles errores:(tpico)
El siguiente comando restablece el estado de la Base de Datos y la vuelve a poner en lnea:
ALTER DATABASE bd_telefonos SET ONLINE
Lo cual soluciona el problema, este procedimiento se puede llevar a cabo desde el shell, desde el Management Studio o bien vinculandolo a un botn en tiempo de ejecucin desde nuestro programa en VC# Studio 2010.
19
Posibles errores:(tpico)
20
4. 5.
6.
Crear la base de datos con SQL Server, si aun no esta creada Crear una aplicacin Windows. Use Visual Studio Establecer la conexin con el origen de datos. Esto incluye crear una consulta que permita llenar el conjunto de datos a partir de la base de datos Crear el conjunto de datos Agregar el control rejilla (Grid) al formulario y enlazarlo a los datos Agregar cdigo para llenar el conjunto de datos y cdigo para enviar los cambios del conjunto de datos de vuelta a la base de datos
A. Gerardo Fuentes Covarrubias 21
Arquitectura de componentes
Conjunto de datos DataAdapter SelectCommand InsertCommand DeleteCommand UpdateCommand Base de datos Aplicacin Connection
22
Controles externos
1y2
23
Controles externos
1
A. Gerardo Fuentes Covarrubias
2
24
25
26
Procedimiento
Siga las instrucciones del asistente y configure una nueva conexin para ese adaptador de datos.
2
27
28
29
30
Automticamente aparecern los campos y la instruccin de transactions-sql Presione el botn de Aceptar para generar las instrucciones de transactions-sql
31
2
A. Gerardo Fuentes Covarrubias 32
Windows actualizar su system tray a la configuracin actual y crear una nueva conexin
A. Gerardo Fuentes Covarrubias 33
Asegurarse que la casilla Agregar est marcada, despus click en el botn Aceptar. VC# generar un conjunto de datos denominado dataSet11 de la clase DataSet1
35
36
2. Modifique la propiedad DataMember y asgnelo a la tabla de la base de datos. Deber aparecer el encabezado en el DataGridView
A. Gerardo Fuentes Covarrubias 37
38
39
Control BindingSource
Un objeto BindingSource hace de puente entre el control y el conjunto de datos, simplificando la conexin control-origen de datos, la actualizacin del contenido actual, la notificacin de cambios y otros servicios. Control en un formulario
BindingSource
Origen de datos
40
Realizada la conexin control-origen de datos, toda interaccin con los datos incluyendo la navegacin, ordenacin, filtrado y actualizacin, puede ser llevada a cabo usando la funcionalidad del componente BindingSource. El tipo del origen de datos subyacente se fija a travs de uno de los siguientes mecanismos:
Usando el mtodo Add para aadir un elemento al componente BindingSource. Asignando a su propiedad DataSource una lista, un objeto o un tipo
Un componente BindingSource permite enlazar universalmente todos los controles de formularios Windows a orgenes de datos muy diversos.
A. Gerardo Fuentes Covarrubias 41
42
Formulario a crear
43
Cdigo vinculado
Namespace adicional: using System.Collections; Inicializacin de objetos: private BindingSource bindingSource1; ArrayList listaTemperaturas;
44
public string Voltaje { get { return voltaje; } } public string Temperatura { get { return temperatura; } } public string Fecha { get { return fecha; } } public string Hora { get { return hora;} } }
A. Gerardo Fuentes Covarrubias 46
Cdigo:
private void Form1_Load(object sender, EventArgs e) { listaTemperaturas = new ArrayList(); listaTemperaturas.Add(new tipoDatalog(txtVoltaje.Text, txtTemperatura.Text, txtFecha.Text,txtHora.Text)); bindingSource1=new BindingSource(); bindingSource1.DataSource=listaTemperaturas; txtVoltaje.DataBindings.Add("Text",bindingSource1,Voltaje"); txtTemperatura.DataBindings.Add("Text",bindingSource1,Temperatura"); txtFecha.DataBindings.Add("Text",bindingSource1,Fecha"); txtHora.DataBindings.Add(Text,bindingSource1,Hora); }
47
Cdigo:
private void btAgregar_Click(object sender, EventArgs e) { listaTemperaturas.Add(new tipoDatalog(txtVoltaje.Text,txtTemperatura.Text, txtFecha.Text,txtHora.Text)); txtVoltaje.Text=""; txtTemperatura.Text=""; txtFecha.Text = ""; txtHora.Text = ""; } private void btSiguiente_Click(object sender, EventArgs e) { bindingSource1.MoveNext(); } private void btAnterior_Click(object sender, EventArgs e) { bindingSource1.MovePrevious(); A. Gerardo Fuentes Covarrubias }
48
49
Formulario a crear
50
51
52
.
La propiedad DataBindings de un control da acceso a la coleccin ControlBindingsCollections que permite almacenar los vnculos que mantiene ese control con los orgenes de datos desde los cuales quiere proveerse lo que tambin le permitir interactuar de forma directa con ellos. Doble click en el formulario principal y se generar de manera automatica el cdigo para rellenar los textBox con el registro inicial, aunque no puede hacerse algo ya que no se han implementado los controles para actualizar, insertar o borrar registros.
A. Gerardo Fuentes Covarrubias 53
.
namespace sqlBindingBD { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { // TODO: This line of code loads data into the 'dirEmpresaDataSet.directorio' //table. You can move, or remove it, as needed. this.directorioTableAdapter.Fill(this.dirEmpresaDataSet.directorio); } } }
A. Gerardo Fuentes Covarrubias 54
55
Cdigo de posicionamiento
private void btPrimero_Click(object sender, EventArgs e) { directorioBindingSource.Position = 0; mostrarPosicion(); } private void btUltimo_Click(object sender, EventArgs e) { directorioBindingSource.Position = directorioBindingSource.Count-1; mostrarPosicion(); } private void btSiguiente_Click(object sender, EventArgs e) { directorioBindingSource.Position += 1; mostrarPosicion(); } private void btAnterior_Click(object sender, EventArgs e) { directorioBindingSource.Position -= 1; mostrarPosicion(); }
57
60