測試文字功能,小工具,標題

記錄很重要,不然會浪費很多時間在找以前的記憶

一個人的氣度,決定他未來的高度。

2016年5月17日 星期二

ADO.NET 連線本機資料庫 sdf 的方式

ADO.NET 連線本機資料庫 sdf 的方式

先 using System.Data.SqlServerCe;

加入參考,下面是原始網址
http://430895101.blogspot.tw/2013/05/c-sqlceconnection-systemdatasqlserverce.html

system.data.sqlserverce.dll,其路徑為 『C:\Program Files\Microsoft SQL Server Compact Edition\v3.5\Desktop\System.Data.SqlServerCe.dll』,視版本,4.0 存在『C:\Program Files\Microsoft SQL Server Compact Edition\v4.0\Desktop\System.Data.SqlServerCe.dll』,只要將這個 DLL 加入參考就可以正常使用了。

32位元版則在『C:\Program Files (x86)\Microsoft SQL Server Compact Edition\v3.5\Desktop\System.Data.SqlServerCe.dll』與『C:\Program Files (x86)\Microsoft SQL Server Compact Edition\v4.0\Desktop\System.Data.SqlServerCe.dll』

連線字串要改用 SqlCeConnection

           try
            {
                String strConn = @"Data Source=|DataDirectory|\Database1.sdf;";
                using (SqlCeConnection conn = new SqlCeConnection(strConn)) //這裡要改一下
                {
                    conn.Open();
 using (SqlCeCommand cmd = new SqlCeCommand(strCmd, conn)) //這裡要改一下
{
}
                    conn.Close();

                }
            }
            catch (Exception err)
            {
                MessageBox.Show(err.Message);
            }
       

原本是打算一次多筆 INSERT進資料庫,但找了很多資料,好像這種模式不支援

一次 INSERT 一筆ok,但一次 INSERT多筆就不行

網路上有人說可以用SqlCeBulkCopy.2.1.6.12.zip

https://sqlcebulkcopy.codeplex.com/

改天再試看看

using System.Data.SqlServerCe; //這個要加入參考System.Data.SqlServerCe
using ErikEJ.SqlCe; //這個要加入參考ErikEJ.SqlCe.NetCF

String dataSource = @"Data Source=D:\tmp\TEST_SqlCeBulkCopy\TEST_SqlCeBulkCopy\bin\Debug\Test.sdf";
 using (SqlCeBulkCopy bc = new SqlCeBulkCopy(dataSource))
            {
                bc.DestinationTableName = "LoadData"; //LoadData指的是sdf裡的table name
                bc.WriteToServer(dt); //dt就是來源的DataTable的資料
            }


db超過256m會出問題,要改 Max Database Size

String strConn = @"Data Source=|DataDirectory|\Database1.sdf;Max Database Size=1024;Persist Security Info=False;";

沒有留言:

張貼留言