Operaciones de Inserción en una Base de Datos SQLite con MonoTouch
Para realizar las operaciones estándar en
una base de datos SQLite con MonoTouch, no se necesita nada extra a
lo ya conocido en .NET para el manejo de Datos. Pero si eres nuevo
en este mundo, te sera de mucha ayuda este post.
Nuestro primer paso es crear una
base de datos SQLite idéntica a la que se hace en este post
(http://cup-coffe.blogspot.com/2012/01/conectarse-una-base-de-datos-sqlite-con.html)
junto con la conexión a la BD, luego crearemos un objeto nuevo que
contenga datos de un campeonato:
Championship
_championship = new
Championship ();
_championship.championshipName
= "UEFA
EURO 2012";
_championship.championshipStartDate
= new
DateTime (2012, 6, 8);
_championship.championshipEndDate
= new
DateTime (2012, 7, 1);
_championship.championshipDescription
= "UEFA
2012 Ukraine - Poland";
_championship.championshipHistory
= "The
joint Poland - Ukraine bid was chosen by a vote of the UEFA Executive
Committee at a meeting in Cardiff on 18 April 2007.";
_championship.championshipHost
= "Ukraine
- Poland";
_championship.championshipId
= 1;
Inserción sin Parámetros
Para este caso, vamos a insertar el elemento en la Base de Datos, pero por una cadena SQL simple sin parámetros de ADO.NET:
using
(var
cmd=connection.CreateCommand()) {
connection.Open
();
cmd.CommandText
= "INSERT
INTO Championship VALUES((SELECT max(championshipId) FROM
Championship)+1,'"
+
_championship.championshipName + "','"
+
_championship.championshipHost + "','"
+
_championship.championshipStartDate.ToShortDateString () + "','"
+
_championship.championshipEndDate.ToShortDateString () + "','"
+
_championship.championshipDescription + "','"
+
_championship.championshipHistory + "')";
int
num = cmd.ExecuteNonQuery ();
connection.Close
();
}
Inserción con Parámetros
La inserción con parámetros es un poco mas larga,
pero mas limpia en cuanto al manejo de tipos:
using
(var
cmd=connection.CreateCommand()) {
connection.Open
();
cmd.CommandText
= "INSERT
INTO Championship VALUES((SELECT max(championshipId) FROM
Championship)+1,@Name,@Host,@StarDate,@EndDate,@Description,@History);";
cmd.Parameters.Add
(new
SqliteParameter ("@Name",
DbType.String));
cmd.Parameters.Add
(new
SqliteParameter ("@Host",
DbType.String));
cmd.Parameters.Add
(new
SqliteParameter ("@StarDate",
DbType.DateTime));
cmd.Parameters.Add
(new
SqliteParameter ("@EndDate",
DbType.DateTime));
cmd.Parameters.Add
(new
SqliteParameter ("@Description",
DbType.String));
cmd.Parameters.Add
(new
SqliteParameter ("@History",
DbType.String));
cmd.Parameters
[0].Value = _championship.championshipName;
cmd.Parameters
[1].Value = _championship.championshipHost;
cmd.Parameters
[2].Value = _championship.championshipStartDate;
cmd.Parameters
[3].Value = _championship.championshipEndDate;
cmd.Parameters
[4].Value = _championship.championshipDescription;
cmd.Parameters
[5].Value = _championship.championshipHistory;
int
num = cmd.ExecuteNonQuery ();
connection.Close
();
}
Manejo de la llave primaria
Para manejar la llave primaria auto numerable,
tenemos 2 formas de hacer, la primera es poniendo NULL:
INSERT INTO t1 VALUES(NULL,123);
En el ejemplo podemos ver que se esta insertando en la Tabla “t1”
un valor junto a un NULL que es la llave primaria auto numerable.
La segunda opción(la usada aquí) es consular por el
valor mas alto de la tabla en el campo de la llave primaria y luego
sumarle 1:
INSERT INTO t1 VALUES((SELECT max(a) FROM t1)+1,123);
Edición y Eliminación
Para la edición de una fila, no es muy complejo,
simplemente hay que cambiar la consulta de Insert a Update y en el
caso de la eliminación es como sigue:
using
(var
cmd=connection.CreateCommand()) {
connection.Open
();
cmd.CommandText
= "DELETE
FROM Championship";
int
num = cmd.ExecuteNonQuery ();
connection.Close
();
}
Suerte y espero que les sirva.
Comentarios
Publicar un comentario