1. Поддержка SQLCE
Использование SqlCE для SQL, поддержка SQL, поддержка и поддержка SQL:
Версия SQLCE3.5
общественный класс БД
{
public static void WriteLocation(Gps GPS)
{
строка appPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().GetName().CodeBase.ToString());
string dbcStr = @"Data Source =" + appPath.Replace(@" \",@" ") + @"Mc.sdf";
SqlCeConnection sqlCon = новый SqlCeConnection (dbcStr);
SqlCeCommand sqlCmd = новый SqlCeCommand(" ", sqlCon);
sqlCon.Открыть();
SqlCeTransaction sqltran = sqlCon.BeginTransaction();
sqlCmd.Transaction = SQLtran;
пытаться
{
sqlCmd.CommandText = "INSERT INTO Location_t (Lc_Dt, Lc_Longitude, Lc_Latitude, Lc_Speed, Lc_Direction) ЗНАЧЕНИЯ (@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();
}
поймать (Исключение ex)
{
SQLtran.Rollback();
}
окончательно
{
sqlCon.Закрыть();
}
}
}
Использование SQLCE с использованием System.Data.SqlServerCe;没有什么区别。
2.Строка подключения
在ConnectionString не используется, не используется, не используется, не используется в VS2008, не используется.使用的路径是.xxx.sdf,而在目标机上是不能使用相对路径的。
String dbcStr = @"Data Source =" + appPath.Replace(@" \",@" ") + @" Mc.sdf";即这一句话。
需要注意的是@似乎表示引号中的内容不转义,这样呢写起来会比较方便。如果用转义也可以,这个大家可以自己去试。@"Mc.sdf",这个地方是数据库相对于执行文件的路径,
需要根据自己的实际情况进行修改。
3. 一个小问题的解决
Вычисление выражения вызвало переполнение. [ Имя функции (если известно) = ]。
sqlce sp2 beta2 的补丁, 结果打了补丁没用。后来觉得是不是数据类型的问题,将上面程序中对应的几个 десятичная дробь的字段的长度和精度都进行了增加,
问题解决。因此估计该Exception应该是数据类型不匹配一类的问题。
作者: 大米猫咪来回变