Sei sulla pagina 1di 5

En esta oportunidad vamos a ver como, de forma muy sensilla y con muy poco cdigo, podemos establecer en visual

basic .net una conexin 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 continuacin:

Imports System.Data

Imports System.Data.SqlClient Para este ejemplo utilizaremos un formulario con un Botn (Button1) y un DataGridView (DataGridView1). En el evento click de button1 uno copiamos el siguiente codigo y modificamos algunos parmetros (Nombre o IP del Servidor, El Nombre de la base de datos y Nombre de la tabla en la instruccin 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 conexin (cnn), luego un DataAdapter (da) que tiene como parmetro la instruccin para recuperar los datos (SELECT) y la conexin que debe utilizar (cnn). Si quieres seleccionar solo algunos registros debers agregar una condicin WHERE a la instruccin de seleccin. En las lineas que siguen les dejo algunas breves definiciones por si a alguno le hicieran falta y para saber ms de las distintas opciones para crear una conexin SQL Server 2005 les dejo tambin el siguiente link:http://www.connectionstrings.com/sql-server-2005.

DataAdapter Representa un conjunto de comandos SQL y una conexin de base de datos que se utilizan para rellenar el objeto DataSet y actualizar el origen de datos. DataAdapter acta como puente entre DataSet y un origen de datos para la recuperacin y el almacenamiento de datos. Para poder actuar como un puente, DataAdapter asigna el mtodo Fill, que modifica los datos de DataSet de forma que coincidan con los del origen de datos, y asigna el mtodo 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 coleccin 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 maysculas y minsculas 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 maysculas y minsculas. Sin embargo, si existe mydatatable pero no existe Mydatatable, se considerar que la cadena de bsqueda no distingue entre maysculas y minsculas. 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 asi poder modificar el contenido o registros de las tablas. Codigo de conexion: --Cabecera import system.data import 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 abrir

if con.state=0 then con.open() end sub sub cerrar if con.state=1 then con.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

Cdigo
GO USE master GO IF(DB_ID('ejercicio')IS NOT NULL) DROP DATABASE ejercicio GO CREATE DATABASE ejercicio GO USE ejercicio GO CREATE 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) GO CREATE 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 BEGIN IF(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' END END

--ahora el code en visual

Cdigo
Imports System.Data Imports System.Data.SqlClient Public 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 Sub End Class

Potrebbero piacerti anche