Funcíon SQL que devuelve el numero de coincidencias de un caracter en una cadena
CREATE FUNCTION [dbo].[fnCountChar] ( @pInput VARCHAR(max), @pSearchChar CHAR(1) )
RETURNS INT
BEGIN
DECLARE @vInputLength INT
DECLARE @vIndex INT
DECLARE @vCount INT
SET @vCount = 0
SET @vIndex = 1
SET @vInputLength = DATALENGTH(@pInput)
WHILE @vIndex <= @vInputLength
BEGIN
IF SUBSTRING(@pInput, @vIndex, 1) = @pSearchChar
SET @vCount = @vCount + 1
SET @vIndex = @vIndex + 1
END
RETURN @vCount
END
08 mayo 2011
En C sharp, seleccionar registros en una base de datos Access (versión 97) usando las librerias ODBC
Aqui escribo el ódigo para seleccionar el máximo valor de un campo determinado:
private void IdMasAlto()
{
DatosConexionABaseDeDatos odatosConexion = new DatosConexionABaseDeDatos();
OleDbConnection conexion = odatosConexion.getConexion();
conexion.Open();
DataSet ds = new DataSet();
DataTable dt = new DataTable();
string strSQL = "SELECT MAX(IdTipo) AS ultimo FROM Tipo";
//La consulta únicamente devolverá un registro de una columna: Un valor.
OleDbDataAdapter oAdaptador= new OleDbDataAdapter(strSQL, conexion);
oAdaptador.Fill(ds, "elultimo");
dt = ds.Tables["elultimo"];
DataRow fila =dt.Rows[0];
//ID es una propiedad
ID = Convert.ToInt32(fila["ultimo"].ToString());
conexion.Close();
}
Este códigio, modificandolo, servirá para recorrer varios registros devuelvos. Quedando así: if (dt.Rows.Count == 0)
this.lblUsuario.Text = "No existe el usuario...";
else
{
foreach (System.Data.DataRow fila in dt.Rows)
{
this.lblUsuario.Text = "Bienvenido " + fila["nombre"].ToString();
}
}
Por supuesto, y antes de marchar, recordar que hay que hacer las siguientes importaciones antes de empezar, en las primeras líneas:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.OleDb;
Saludos ;)
Suscribirse a:
Entradas (Atom)