Pues eso… que esto seguro que lo tengo mil veces publicado en mi sitio, pero hoy lo he ido a buscar, y no lo he encontrado de forma concreta, así que… aquí está para que "yo" lo encuentre… jejeje
¿Por qué buscaba esto?
El caso es el siguiente: necesitaba saber el ID (u otro campo) de una tabla de una base de datos de SQL Server Express 2014 (el tipo de base de datos es indiferente siempre que tenga el método que te comento) haciendo una consulta, concretamente usando LIKE en la propia cadena de selección o consulta.
La consulta es la siguiente:
String.Format(
"SELECT ID FROM Clientes
WHERE Nombre LIKE '%{0}%'
AND Apellidos LIKE '%{1}%'",
nombre, apellidos)
No indico la forma de asignar esa cadena para que uses VB o C#, en el primer caso tendrías que indicar Dim sel = y en el segundo var sel =
A continuación creamos un objeto del tipo Connection y otro del tipo Command y hacemos una llamada al método ExecuteScalar y el valor que devuelva será (en este caso concreto) el ID que estamos buscando o CERO si no lo ha encontrado.
Simplificando (sin tratamiento de error y esas cosas), si el acceso a la base de datos es de SQL Server (en este ejemplo en una instancia de SQLEXPRESS) y usamos las clases definidas en System.Data.SqlClient, el código sería algo así:
Visual Basic:
Public Shared Function BuscarCliente2(nombre As String, apellidos As String) As Integer
Dim elID As Integer = 0
Dim sel =
String.Format(
"SELECT ID FROM Clientes WHERE Nombre LIKE '%{0}%' AND Apellidos LIKE '%{1}%'",
nombre, apellidos)
Dim sCon = ".\sqlexpress;Initial Catalog=LaBaseDeDatos;Integrated Security=True"
Using con As New SqlConnection(sCon)
Dim cmd As New SqlCommand(sel, con)
con.Open()
elID = CInt(cmd.ExecuteScalar())
con.Close()
End Using
Return elID
End Function
C#:
public static int BuscarCliente2(string nombre, string apellidos)
{
int elID = 0;
var sel =
String.Format(
"SELECT ID FROM Clientes WHERE Nombre LIKE '%{0}%' AND Apellidos LIKE '%{1}%'",
nombre, apellidos);
var sCon = @".\sqlexpress;Initial Catalog=LaBaseDeDatos;Integrated Security=True";
using (SqlConnection con = new SqlConnection(sCon))
{
SqlCommand cmd = new SqlCommand(sel, con);
con.Open();
elID = Convert.ToInt32(cmd.ExecuteScalar());
con.Close();
}
return elID;
}
Y esto es todo amigos… 🙂
Nos vemos.
Guillermo