vtortola.Net

Mayo 7, 2007

Columnas autoincrementales en un DataTable

Archivado en: .NET, ADO.NET, C# — vtortola @ 8:02 am

Una de las cosas que me gusta de ADO.NET es la forma que tiene de trabajar con los datos y las facilidades de las que provee para trabajar.

Para cuando trabajamos con tablas que tienen una columna de identificación autoincremental, ADO.NET nos provee de la forma de automatizar este proceso, es tan sencillo como marcar la columna como ‘AutoIncrement’ , indicar desde que valor ha de comenzar (‘Seed’) y de cuanto en cuanto ha de incrementar.

El ejemplo es parcial, simplemente muestra la parte del código “interesante”.

// Lleno mi DataTable dt.
da.Fill(dt);

// Columna que quiero que sea autoincremental
dt.Columns["ID"].AutoIncrement = true;

// Obtengo el valor más alto de esa columna.
DataRow[] dra = dt.Select(“ID = MAX(ID)”);

if (dra.Length > 0)
{

// Indico desde donde empezará a contar
dt.Columns["ID"].AutoIncrementSeed = Int64.Parse(dra[0][0].ToString()) + 1;

}
else
{

// No obtener resultados puede ser dos cosas:

if (dt.Rows.Count > 0)
{

// Ha habido un error en el calculo, por ejemplo, habia valores
// no numéricos en esa columna.
throw new EvaluateException(“No se ha podido obtener el último valor.”);

}
else
{

// No habia filas, por lo que podemos empezar de 0
dt.Columns["ID"].AutoIncrementSeed = 0;

}

}

// Indico que valor autoincrementará.
dt.Columns["ID"].AutoIncrementStep = 1;

Aún no hay comentarios »

Aún no hay comentarios.

Canal RSS de los comentarios de la entrada. URI para TrackBack.

Deja un comentario

Tienes que iniciar sesión para escribir un comentario.

Blog de WordPress.com.