Conectar a SQL Server Con Vb Net
-
Upload
krowell-muriel -
Category
Documents
-
view
358 -
download
0
description
Transcript of Conectar a SQL Server Con Vb Net
En esta oportunidad vamos a ver como, de forma muy sensilla y con muy poco código, podemos
establecer en visual basic .net una conexión con un servidor de SQL Server, en mi caso SQL Server
Express 2005, y luego de recuperar los datos de una de las tablas para llenar con ellos un
DataGridView.
Lo primero que hay que hacer es importar dos espacios de nombres como muestro a continuación:
Imports System.Data
Imports System.Data.SqlClient
Para este ejemplo utilizaremos un formulario con un Botón (Button1) y un DataGridView
(DataGridView1). En el evento click de button1 uno copiamos el siguiente codigo y modificamos
algunos parámetros (Nombre o IP del Servidor, El Nombre de la base de datos y Nombre de la tabla en
la instrucción SELECT) para que todo funcione bien.
Dim cnn As New SqlConnection("Data Source=MyServidor;Initial
Catalog=MiBaseDeDatos;Integrated Security=SSPI;")
Dim da As New SqlDataAdapter("SELECT * FROM Productos", cnn)
Dim ds As New DataSet
da.Fill(ds)
DataGridView1.DataSource = ds.Tables(0)
Bueno, en realidad no hay mucho que explicar… se crea una conexión (cnn), luego un DataAdapter
(da) que tiene como parámetro la instrucción para recuperar los datos (SELECT) y la conexión que
debe utilizar (cnn). Si quieres seleccionar solo algunos registros deberás agregar una
condición WHERE a la instrucción de selección.
En las lineas que siguen les dejo algunas breves definiciones por si a alguno le hicieran falta y para
saber más de las distintas opciones para crear una conexión SQL Server 2005 les dejo también el
siguiente link:http://www.connectionstrings.com/sql-server-2005.
DataAdapter
Representa un conjunto de comandos SQL y una conexión de base de datos que se utilizan para
rellenar el objeto DataSet y actualizar el origen de datos.
DataAdapter actúa como puente entre DataSet y un origen de datos para la recuperación y el
almacenamiento de datos. Para poder actuar como un puente, DataAdapter asigna el método Fill, que
modifica los datos de DataSet de forma que coincidan con los del origen de datos, y asigna el método
Update, que modifica los datos del origen de datos para hacerlos coincidir con los de DataSet.
DataSet
Representa una caché de memoria interna de datos. Es un componente fundamental de la
arquitectura de ADO.NET. DataSet está compuesto por una colección de objetos DataTable.
DataTable
Representa una tabla de datos en memoria.
DataTable es un objeto central de la biblioteca ADO.NET. Entre los objetos que utilizan DataTable se
incluyen DataSet y DataView.
Al obtener acceso a los objetos DataTable, hay que tener en cuenta que éstos distinguen entre
mayúsculas y minúsculas condicionalmente. Por ejemplo, si un objeto DataTable se denomina
“mydatatable” y otro “Mydatatable”, la cadena que se utilice para buscar una de las tablas se
considerará que distingue entre mayúsculas y minúsculas. Sin embargo, si existe “mydatatable” pero
no existe “Mydatatable”, se considerará que la cadena de búsqueda no distingue entre mayúsculas y
minúsculas. Un objeto DataSet puede contener dos objetos DataTable que tengan el mismo valor para
la propiedad TableName y distintos valores para la propiedad Namespace.<
99999999999999999999999999999999999999999999999999999999
Oe men si quieres conectar Sql Server con Visual Net usa una cadena de conexion para asipoder modificar el contenido o registros de las tablas. Codigo de conexion:
--Cabeceraimport system.dataimport system.data.sqlclient
------
public con as new sqlconnection("Server=.;DataBase=NombreBD;Integrated Security=true");
'el . en la cadena de conexion corresponde a tu servidor con el q entras a SQL'metodos para abrir conexion
sub abririf con.state=0 thencon.open()end sub
sub cerrarif con.state=1 thencon.close()end dub
--ya esta ahora esos metodos de abrir y cerrar se usan cuando quieres modificar --las tablas de tu BD ya sea registrando , eliminado,Modificando , etc
AKI UN EJEMPLO UTILIZANDO UNA BD : ejercicio
CódigoGOUSE masterGOIF(DB_ID('ejercicio')IS NOT NULL)DROP DATABASE ejercicioGOCREATE DATABASE ejercicioGOUSE ejercicioGOCREATE TABLE producto (idp CHAR(3)PRIMARY KEY,nombre VARCHAR(30)NOT NULL,procedencia VARCHAR(20)NOT NULL CHECK (procedencia IN('Nacional','Importado')),precio money,presentacion VARCHAR(15)NOT NULL CHECK(presentacion IN('Caja','Lata','Bolsa')),stock INT NOT NULL CHECK(stock >0),fvencimiento DATE)GOCREATE proc registrar(@idp CHAR(3),@nombre VARCHAR(30),@proc VARCHAR(20),@precio money,@presen VARCHAR(15),@stock INT,@fv DATE,@msj VARCHAR(60)output)AS BEGINIF(EXISTS(SELECT * FROM producto WHERE idp =@idp )) SET @msj ='el id '+','+@idp +'Producto ya existe' ELSE BEGIN INSERT producto VALUES(@idp ,@nombre ,@proc ,@precio ,@presen ,@stock ,@fv ) SET @msj ='DATOS REGISTRADOS' ENDEND
--ahora el code en visual
Código Imports System.DataImports System.Data.SqlClientPublic Class Form1 Public con As New SqlConnection("Server=.;DataBase=ejercicio;Integrated Security=true") Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load cbxpresentacion.Items.Add("Seleccione") : cbxpresentacion.Items.Add("Caja") cbxpresentacion.Items.Add("Lata") : cbxpresentacion.Items.Add("Bolsa") rbtnacional.Checked = True cbxpresentacion.SelectedIndex = 0 'para validar meses vermes() End Sub Sub abrir() If con.State = 0 Then con.Open() End Sub Sub cerrar() If con.State = 1 Then con.Close() End Sub Private Sub btnregistrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnregistrar.Click If txtcodigo.Text <> "" And txtnombre.Text <> "" And txtprecio.Text <> "" And txtstock.Text <> "" Then If cbxpresentacion.SelectedIndex <> 0 Then Try Dim cmd As New SqlCommand Dim msje As String = "" abrir() cmd = New SqlCommand("registrar", con) cmd.CommandType = 4 With cmd.Parameters .AddWithValue("@idp", txtcodigo.Text) .AddWithValue("@nombre", txtnombre.Text) If rbtnacional.Checked = True Then .AddWithValue("@proc", "Nacional") Else .AddWithValue("@proc", "Importado") End If .AddWithValue("@precio", txtprecio.Text) .AddWithValue("@presen", cbxpresentacion.Text) .AddWithValue("@stock", txtstock.Text) .AddWithValue("@fv", datefv.Value) .Add("@msj", SqlDbType.VarChar, 60).Direction = 2 cmd.ExecuteNonQuery() msje = cmd.Parameters("@msj").Value MessageBox.Show(msje)
limpiar() End With Catch ex As Exception End Try cerrar() Else MessageBox.Show("Seleccione Un Indice del Combo") End If Else MessageBox.Show("Llene Cajas") End If End Sub Sub limpiar() txtcodigo.Clear() : txtnombre.Clear() : txtprecio.Clear() txtstock.Clear() rbtnacional.Checked = True cbxpresentacion.SelectedIndex = 0 End Sub Sub vermes() ',con esto al momento de escoger el valor del datetimepicker 'el mes se suma 2 Dim mes As Integer = Now.Month datefv.MinDate = New DateTime(Now.Year, mes + 2, Now.Day) End Sub Private Sub datefv_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles datefv.ValueChanged vermes() End SubEnd Class