1.SQLCE의 용도
SqlCE의 사용과 일반적인 SQL은 불가능합니다.
SQLCE3.5의 사용 예
공개 클래스 DB
{
공개 정적 무효 WriteLocation(Gps GPS)
{
string appPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().GetName().CodeBase.ToString());
string dbcStr = @"데이터 소스 =" + appPath.Replace(@" \",@" ") + @"Mc.sdf";
SqlCeConnection sqlCon = new SqlCeConnection(dbcStr);
SqlCeCommand sqlCmd = new SqlCeCommand(" ", sqlCon);
sqlCon.Open();
SqlCeTransaction sqltran = sqlCon.BeginTransaction();
sqlCmd.Transaction = sqltran;
노력하다
{
sqlCmd.CommandText = "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();
}
잡기 (예외예외)
{
sqltran.Rollback();
}
마지막으로
{
sqlCon.Close();
}
}
}
System.data.sqlserverce를 사용하는 Sqlce q 并且相关的类都要由 SQLCE;
2.연결문자열
ConnectionString这里我很花了点功夫,开始怎么弄道不对,后来才发现是有点窍门的.VS2008里에서 它使用路径是.xxx.sdf,而目标机上是는 사용하기가 좋지 않습니다.
而绝对路径试了多次道不行,后来才找到一篇文章是取当前程序路径。string dbcStr = @"Data Source =" + appPath.Replace(@" \",@" ") + @" Mc.sdf";即这一句话。
需要注willable是@似乎表示引号中的内容不转义,这样呢写起来会比较方便。己去试。@"Mc.sdf",这个地方是数据库相对于执行文件的路径,
需要根据自己的实际情况进行修改.
3. 一个小问题的解决
首先要说的是经验主义要不得。 에서 사용 상면적 SQL语句写数据库的时候开始有错误:식 평가에서 오버플로가 발생했습니다. [ 함수 이름(알고 있는 경우) = ]。
然后搜索的结果,发现是需要打sqlce sp2 beta2의 补丁,结果打了补丁没用.后来觉得是不是数据类型的问题程序中对应的几个decimal 字段的长道 and精道德进行了增加,
问题解决.因此估计该Exception이 발생하지 않습니다.
작곡자 : 大米猫咪来回变