• Comentarios recientes

    jorge on Error: Palabra clave no admiti…
  • Categorías

Etapas de la programación

Etapas de la programación

Etapas de la programación

Creo que en este momento estoy en la 3a etapa. Por ahora estaré dedicado a otros asuntos, pero ahí les dejo esta caricatura. ¡Espero que nunca terminemos así!

INSERT INTO

La consulta que describí en el post anterior me devolvía 0 filas afectadas. Esto era porque me estaba faltando un pequeño detalle: la función ExecuteNonQuery de la conexión SQL que estamos ejecutando. Sin esta instrucción nada de lo que estamos haciendo se va a ejecutar (haberlo dicho antes).

Entonces, añadiendo la instrucción y corrigiendo algunos detalles de sintaxis, la cadena INSERT INTO sería:

'-----Declaraciones:
'Variable que recibirá la cadena de conexión
Dim SQLConexion As New System.Data.SqlClient.SqlConnection("Data Source=(local)\SQLEXPRESS;InitialCatalog=DB1;User=sa;Password=pass")
'Variable del objeto comando para las operaciones.
Dim SQLComando As New System.Data.SqlClient.SqlCommand

'Rutina----
'Abrir la conexión
SQLConexion.Open()

'Asignar la cadena de conexion al objeto comando
SQLComando.Connection = SQLConexion

'Insertamos un registro
SQLComando.CommandText = "Insert Into Tabla1 " & _
"(id, Peso, FechaHora) " & _
"Values " & _
"(@P1, @P2, @P3)"


SQLComando.Parameters.Add("@P1", SqlDbType.NChar, 10).Value = Dato_id
SQLComando.Parameters.Add("@P2", SqlDbType.Real, 10).Value = Dato_Peso
SQLComando.Parameters.AddWithValue("@P3", FechaHora)

SQLComando.ExecuteNonQuery()

'Cerrar la conexión
SQLConexion.Close()

Como nos podemos dar cuenta, añadimos ahora la funcionalidad de agregar los valores por medio de parámetros. Así es más fácil evitar problemas de concatenación (y otros, como los ataques de inyección de SQL). Por lo tanto es preferible parametrizar la sentencia como lo hicimos.

Error: Palabra clave no admitida: ‘userid’.

Encontré el error, en la cadena de conexión:
Dim SQLConexion As New System.Data.SqlClient.SqlConnection("DataSource=.\SQLEXPRESS; Initial Catalog=VERIFICADOR;Persist Security Info=True;UserID=sa;Password=pass")
Cambié la palabra UserID por unicamente User. Al parecer la palabra UserID es una palabra reservada y provocaba un conflicto al mostrar el formulario.

Lo que he sacado en claro de una nueva conexión a SQL Server:

  • En la parte DataSource=.\SQLEXPRESS de la cadena de conexión se indica que quieres acceder a la instancia predeterminada de SQL Server que haya en el equipo en el que se está ejecutando la aplicación. El “.” aquí indica que el servidor es el prodeterminado y también se puede indicar mediante: (local). Es decir: DataSource=(local)\SQLEXPRESS . Más información.
  • Siempre debemos indicar a VB que importe los espacios de nombres:
    Imports System.Data (Provee acceso a las clases que representan la arquitectura ADO.NET)
    Imports System.Data.SqlClient (Provee funcionalidad para conectar con SQL Server)

Más información sobre los espacios de nombres System.Data y System.Data.SqlClient.

Ahora el detalle es que ninguna fila se ha afectado cuando envío la cadena INSERT INTO. Seguiré investigando sobre esa instrucción.

Primer proyecto

Mi primer proyecto se trata de un sistema estadístico para manejo de información, incluyendo bases de datos y gráficas, y lo tengo que entregar para el siguiente viernes :S

Lo primero con lo que tengo que lidiar es la conexión a la base de datos. Estoy utilizando Visual Basic 2008 Express Edition y SQL Server 2005 Express Edition.

Como no encontraba nada que me ayudara en la web, decidí recurrir al grupo de Visual Basic .NET en Google Groups y escribir esta pregunta, a la cual me contestaron muy amablemente:

La cadena de conexión a la base de datos de SQL (suponiendo que estás
utilizando SqlClient, para este trabajo) se conpone de la siguiente manera:
Data Source=Servidor o IP del mismo \ Nombre de la instancia… ejemplo:
GATEWAY\NEGOPRO
Initial Catalog= Nombre de la base de datos con la que te conectaras…
ejemplo: MiBD
User ID= Usuario de la conexión… ejemplo: sa
Password=Contraseña del usuario… ejemplo: mipass
de tal forma la cadena de conexión quedaría:
Data Source=GATEWAY\NEGOPRO;Initial Catalog=MiBD;Persist Security
Info=True;User ID=sa;Password=mipass

Sin embargo, el utilizar esta cadena de conexión me provoca el siguiente error:

Error al conectar SQL

Error al conectar SQL

Lo cual le hice saber a Alejandro y apun no me ha contestado. Ya veremos que fin lleva esto del error de SQL, ya que es una parte primordial en el sistema, un hito.

Por ahora, lo dejaré así mientras contesta y me dedicaré a buscar un control o módulo que me permita graficar los datos facilmente. He estado buscando y he descargado un par pero no he entendido todavía como funcionan. Ya ves que soy cabecita de diamante (más dura que todo :))

Objetivo

Este blog tiene dos objetivos personales: El primero y más importante es el de documentar mi experiencia en la programación de Visual Basic desde el principio.

Es decir: Quiero aprender a desarrollar sistemas utilizando el lenguaje Visual Basic, la plataforma .NET Framework y el motor de bases de datos SQL Server.

Habrá quien diga: “Bueno, para eso hay miles de sitios web y blogs que se dedican a ello” y es cierto, pero yo lo que quiero es aprender de ellos y documentar mi experiencia en este blog, esto para que en un futuro me sirva a mí o a alguno que otro principiante en esto del .NET Framework.

El segundo objetivo de este blog es el de probar esta plataforma (wordpress.com), ya que he utilizado Blogger pero quiero saber que se siente tener un blog en WordPress🙂

No puedo decir que mi experiencia sea nula, tengo algo de experiencia con el lenguaje Visual Basic clásico y algo de experiencia con el lenguaje SQL. Pero del .NET Framework casi nada, así que para mí será toda una nueva aventura.

También quiero comentar que no estoy cerrado a aprender unicamente de Visual Basic, sino que, si en el camino tengo que aprender C#, J#, ASP.NET, o cualquier otro lenguaje o plataforma, bienvenido!😉

Así que, espero que este blog me saque (principalmente) de apuro algún día y espero también que pueda servir para aquellos que se inician en este mundo de la programación de sistemas.

Entonces, bienvenido y ¡a empezar a programar!

¡Hola Mundo!

Probando: uno, dos.. uno, dos, probando..