Hacer un buscador en Visual Basic es fácil por lo que para hacerlo algo interesante pero igualmente de fácil, en vez de realizar la consulta en el propio formulario lo haré desde una clase, por lo demás es un sencillo ejemplo.
No crearé ninguna base de datos, usaré una existente, así que primero se hará la conexión a la base de datos llamada: imagenes, la cual tiene una tabla llamada: img con los campos que muestro en la imagen y en donde la búsqueda se hará tomando como criterio el id, el cual es un entero auto incrementable y clave primaria de la tabla
la conexión se hará desde el app.config de nuestro proyecto, la cadena de conexión la llamé conex, por lo que el contenido del app.config queda así para este ejemplo:
xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
configSections>
<connectionStrings>
<add name="conex" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=imagenes;Integrated
Security=True"
providerName="System.Data.SqlClient"
/>
connectionStrings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0,Profile=Client" />
startup>
configuration>
Ahora se debe agregar una nueva clase en el proyecto con nombre ClaseBuscar.cs y tambien debemos importar la referencia System.Configuration
Imports System.Data
Imports
System.Data.SqlClient
Imports
System.Configuration
Public Class ClaseBuscar
Dim sql As String = ConfigurationManager.ConnectionStrings("conex").ConnectionString.ToString
Dim dt As DataTable
Dim cmd As SqlCommand
Dim cnn As SqlConnection
Dim da As SqlDataAdapter
Public Function resultado(ByVal
dato) As DataTable
Using
cnn = New SqlConnection(sql)
Using
cmd = New SqlCommand
cnn.Open()
cmd.Connection = cnn
cmd.CommandText = "select * from img where id=@dato"
cmd.Parameters.AddWithValue("@dato",
dato)
cmd.ExecuteNonQuery()
Using
da = New SqlDataAdapter(cmd)
dt = New DataTable
da.Fill(dt)
Return
dt
End
Using
End
Using
End Using
End Function
End Class
Ahora el diseño del formulario de lo mas simple, con un textbox para ingresar el id que servirá de referencia en la búsqueda de datos(codigo) y otros tres textbox(nombre, comentario y ruta) para mostrar la información que se recupere, aquí el diseño con el código correspondiente
Imports System.Data
Imports
System.Data.SqlClient
Public Class Form1
Dim dt As DataTable
Dim b As New ClaseBuscar
Private Sub BBuscar_Click(ByVal
sender As System.Object,
ByVal e As
System.EventArgs) Handles
BBuscar.Click
dt
= b.resultado(codigo.Text)
If dt.Rows.Count
> 0 Then
nombre.Text = dt.Rows(0).Item("nombre").ToString
comentarios.Text = dt.Rows(0).Item("comentarios").ToString
ruta.Text = dt.Rows(0).Item("ruta").ToString
Else
MessageBox.Show("No
hay resultados para la busqueda")
End If
End Sub
End Class
Se debe crear un nuevo proyecto pero esta vez en lenguaje C#, pero se usara la misma conexión y el mismo diseño de formulario que el ejemplo anterior, por lo que deben seguirse los pasos anteriores utilizados arriba.
Una vez tengamos la conexión con los valores respectivos en el app.config del proyecto y se haya diseñado el formulario, se debe agregar una nueva clase a la cual igual que en el ejemplo anterior se llamara ClaseBuscar y se muestra el codigo que debe llevar
using Microsoft.VisualBasic;
using System;
using
System.Collections;
using
System.Collections.Generic;
using System.Data;
using
System.Diagnostics;
using
System.Data.SqlClient;
using
System.Configuration;
public class ClaseBuscar
{
string sql = ConfigurationManager.ConnectionStrings["conex"].ConnectionString;
DataTable dt;
SqlCommand cmd;
SqlConnection cnn;
SqlDataAdapter da;
public
DataTable resultado(dato)
{
using (cnn = new SqlConnection(sql))
{
using (cmd = new SqlCommand())
{
cnn.Open();
cmd.Connection = cnn;
cmd.CommandText = "select
* from img where id=@dato";
cmd.Parameters.AddWithValue("@dato", dato);
cmd.ExecuteNonQuery();
using (da = new SqlDataAdapter(cmd))
{
dt = new
DataTable();
da.Fill(dt);
return dt;
}
}
}
}
}
listo y ahora al formulario le pegamos el siguiente codigo:
using
Microsoft.VisualBasic;
using System;
using
System.Collections;
using
System.Collections.Generic;
using System.Data;
using
System.Diagnostics;
using
System.Data.SqlClient;
using
System.Windows.Forms;
public class Form1
{
DataTable
dt;
ClaseBuscar
b = new ClaseBuscar();
private void BBuscar_Click(System.Object
sender, System.EventArgs e)
{
dt =
b.resultado(codigo.Text);
if (dt.Rows.Count
> 0)
{
nombre.Text = dt.Rows[0]["nombre"].ToString();
comentarios.Text = dt.Rows[0]["comentarios"].ToString();
ruta.Text =
dt.Rows[0]["ruta"].ToString();
}
else
{
MessageBox.Show("No
hay resultados para la busqueda");
}
}
}
eso es todo !