1.SQLCE的使用
SqlCE的使用和普通SQL区别不大,但是包不一样,不多说看例子:
Programa SQLCE3.5
clase pública Db
{
Ubicación de escritura vacía estática pública (Gps gps)
{
cadena appPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().GetName().CodeBase.ToString());
cadena dbcStr = @"Fuente de datos =" + appPath.Replace(@" \",@" ") + @"Mc.sdf";
SqlCeConnection sqlCon = nuevo SqlCeConnection(dbcStr);
SqlCeCommand sqlCmd = nuevo SqlCeCommand(" ", sqlCon);
sqlCon.Open();
SqlCeTransaction sqltran = sqlCon.BeginTransaction();
sqlCmd.Transaction = sqltran;
intentar
{
sqlCmd.CommandText = "INSERTAR EN Location_t (Lc_Dt, Lc_Longitude, Lc_Latitude, Lc_Speed, Lc_Direction) VALORES (@Lc_Dt,@Lc_Longitude,@Lc_Latitude,@Lc_Speed,@Lc_Direction)";
sqlCmd.Parameters.Add("Lc_Dt", SqlDbType.DateTime).Value = gps.Datetime;
sqlCmd.Parameters.Add("Lc_Longitude", SqlDbType.Decimal).Value = gps.DLong;
sqlCmd.Parameters.Add("Lc_Latitude", SqlDbType.Decimal).Value = gps.DLat;
sqlCmd.Parameters.Add("Lc_Speed", SqlDbType.Decimal).Value = gps.DSpeed;
sqlCmd.Parameters.Add("Lc_Direction", SqlDbType.Decimal).Value = gps.DDirection;
sqlCmd.ExecuteNonQuery();
sqltran.Commit();
}
captura (Excepción ex)
{
sqltran.Rollback();
}
finalmente
{
sqlCon.Close();
}
}
}
Cómo configurar SQLCE usando System.Data.SqlServerCe;没有什么区别.
2.Cadena de conexión
Configuración de ConnectionString, configuración de VS2008, configuración de VS2008的路径是.xxx.sdf,而在目标机上是不能使用相对路径的。
而绝对路径试了多次都不行 , 后来才找到一篇文章是取当前程序路径。String dbcstr = @"data source =" + appPath.replace ( @" \", @" ") + @" Mc.sdf";即这一句话。
"这个大家可以自己去试。@"Mc.sdf",这个地方是数据库相对于执行文件的路径,
需要根据自己的实际情况进行修改.
3.一个小问题的解决
首先要说的是经验主义要不得。在用上面的sql语句写数据库的时候开始有错误:La evaluación de expresiones provocó un desbordamiento. [ Nombre de la función (si se conoce) = ]。
Descripción del producto: SQLCE SP2 Beta2 Beta2.题,将上面程序中对应的几个decimal的字段的长度和精度都进行了增加,
问题解决。因此估计该Exception应该是数据类型不匹配一类的问题。
Ejemplo:大米猫咪来回变