国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

SqlCE 3.5 使用:ConnectionString 設定和一個小錯誤的解決

2019-11-17 03:52:37
字體:
來源:轉載
供稿:網友
1.SQLCE的使用      
SqlCE的使用和普通SQL區別不大,但是包不一樣,不多說看例子:



SQLCE3.5使用例程
public class Db
    {

        public static void WriteLocation(Gps gps)
        {
            string appPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().GetName().CodeBase.ToString());
            string dbcStr = @"Data Source =" + appPath.Replace(@"//",@"/") + @"/Mc.sdf";
            SqlCeConnection sqlCon = new SqlCeConnection(dbcStr);
            SqlCeCommand sqlCmd = new SqlCeCommand(" ", sqlCon);
            sqlCon.Open();
            SqlCeTransaction sqltran = sqlCon.BeginTransaction();
            sqlCmd.Transaction = sqltran;
           
            try
            {   
                sqlCmd.CommandText = "INSERT INTO Location_t (Lc_Dt, Lc_Longitude, Lc_Latitude, Lc_Speed, Lc_Direction) VALUES (@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();
            }
            catch (Exception ex)
            {
                sqltran.Rollback();                
            }
            finally
            {
                sqlCon.Close();                
            }
        }
    }
         

首先需要注意SQLCE需要 using System.Data.SqlServerCe;并且相關的類都要由Sql開頭變為SqlCe開頭。至于使用則和普通Sql沒有什么區別。



2.ConnectionString
      在ConnectionString這里我很花了點功夫,開始怎么弄都不對,后來才發現是有點竅門的。在VS2008里面,它使用的路徑是./xxx.sdf,而在目標機上是不能使用相對路徑的。

而絕對路徑試了多次都不行,后來才找到一篇文章是取當前程序路徑。string dbcStr = @"Data Source =" + appPath.Replace(@"//",@"/") + @"/Mc.sdf";即這一句話。

需要注意的是@似乎表示引號中的內容不轉義,這樣呢寫起來會比較方便。如果用轉義的也可以,這個大家可以自己去試。@"/Mc.sdf",這個地方是數據庫相對于執行文件的路徑,

需要根據自己的實際情況進行修改。

3.一個小問題的解決
      首先要說的是經驗主義要不得。在用上面的sql語句寫數據庫的時候開始有錯誤:ExPRession evaluation caused an overflow. [ Name of function (if known) =  ]。

然后搜索的結果,發現是需要打sqlce sp2 beta2的補丁,結果打了補丁沒用。后來覺得是不是數據類型的問題,將上面程序中對應的幾個decimal的字段的長度和精度都進行了增加,

問題解決。因此估計該Exception應該是數據類型不匹配一類的問題。

作者:大米貓咪來回變
    
出處:http://goodleaf.VEVb.com/

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 广汉市| 乐至县| 彭阳县| 镇江市| 芜湖县| 横峰县| 崇州市| 大化| 滕州市| 宿州市| 遂川县| 射阳县| 台南县| 闻喜县| 海林市| 凭祥市| 江都市| 巴林左旗| 龙州县| 治县。| 明水县| 靖远县| 嵩明县| 新兴县| 邢台市| 依安县| 岳阳县| 延长县| 西平县| 肇东市| 定襄县| 荥经县| 和林格尔县| 青阳县| 揭西县| 葫芦岛市| 文登市| 无锡市| 通渭县| 简阳市| 高邮市|