台灣最大程式設計社群網站
線上人數
854
 
會員總數:245973
討論主題:189551
歡迎您免費加入會員
討論區列表 >> VB.NET >> VB.NET 資料庫單機作業
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
VB.NET 資料庫單機作業
價值 : 10 QP  點閱數:1140 回應數:14
樓主

vbmonk
門外漢
0 13
404 32
發送站內信




各位大大,想請問一下,因為工作電腦不是全時都有網路的狀態,
所以必須先把連線db的資料先下載到本機。
我的做法是把要用到的table寫一份到access 的mdb
但一個table就有2萬多筆資料,寫入mdb的時間非常久,而且有時會出現『』
不知如果把mdb改用excel所花時間會不會比較少?
或是有其他可單機作業的db可使用??
我寫的程式如下,如改程式可解是也請各位大大不吝指導一下,謝謝!



For i As Integer = 0 To ds.Tables("PL_Master").Rows.Count - 1
strSn_ = ds.Tables("PL_Master").Rows(i).Item(0).ToString
strControlNo = ds.Tables("PL_Master").Rows(i).Item(1).ToString
strStatus = ds.Tables("PL_Master").Rows(i).Item(2).ToString
strSnOrder = ds.Tables("PL_Master").Rows(i).Item(3).ToString
strsql = "INSERT INTO PL_MASTER (Sn_,ControlNo,Status,SnOrder) VALUES ('" & strSn_ & "','" & strControlNo & "','" & strStatus & "','" & strSnOrder & "')"
cmd = New OdbcCommand(strsql, con)
cmd.ExecuteNonQuery()
Next

搜尋相關Tags的文章: [ MDB ] , [ 資料庫 ] , [ VB.NET ] ,
本篇文章發表於2017-06-14 09:08
1樓
回應

小魚
檢舉此回應
可以考慮SQLite,本機資料庫我通常是用SQLite來做的,語法跟一般的SQL語法差不多
本篇文章回覆於2017-06-14 12:02
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

Daimom
捐贈 VP 給 Daimom 檢舉此回應
本來想說你用insert into .....values(...),values(....)的方式。
但access不支援此用法。
bulkcopy還不知道是否支援。

如果要用access就參考
這篇
本篇文章回覆於2017-06-14 13:13
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

vbmonk
檢舉此回應
請問SQLite & bulk 都也是資料庫嗎?
是不是一樣都要 建立資料庫>建資料表>insert資料??
本篇文章回覆於2017-06-15 09:34
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

vbmonk
檢舉此回應
剛剛查了一下,sqlite似手也是需在本機裝db server, 不知查到的資訊對不對?
還是可以像access一樣在程式同一目錄建一個mdb檔就可以操作了?

因為程式可能拿到不同電腦,但這樣電腦是無法安裝成db server的。
本篇文章回覆於2017-06-15 09:39
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
不錯的參考

Daimom
捐贈 VP 給 Daimom 檢舉此回應
sqlite是跟access一樣的沒錯,
但你要先考慮到一個問題。
拿到其他電腦上,資料是否需要一樣。
如果需要一樣,請參考使用MSSQL server或mysql或....

如果各電腦的資料不需要一致的話,
可使用access 或 sqlite。

建議你先說清楚,你要做什麼功能。
本篇文章回覆於2017-06-15 11:12
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
作者回應

vbmonk
檢舉此回應
我主要功能是
A.單機資料庫與DB SERVER同步 (有網路)
B.同步後,本機程式讀取單機資料庫 (無網路)

問題:單機資料庫與DB SERVER同步時,原使用的單機資料庫為MDB,但因資料太大,同步時間超久,尋求單機資料庫的替代品。
本篇文章回覆於2017-06-15 15:56
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
回應

小魚
檢舉此回應
你可以考慮試試看Sqlite,套件也很容易抓到,
語法用的就是SQL語法,對你來說應該不難,
如果你沒有找到更好的方式,先試試看再說吧,
我們也有做過專案是下載到本機Sqlite,
然後通過某些條件去判斷要更新資料。
本篇文章回覆於2017-06-15 19:15
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
作者回應

vbmonk
檢舉此回應
想再請問一下,我在開發機裝SQLite-1.0.66.0-setup.exe後,vs2010也可以加入參考。
重建完後在開發機也以正常執行,那到其他電腦執行,只要\Debug下的檔案copy過去就可以了嗎?

要在每一台要執行程式的電腦上安裝SQLite-1.0.66.0-setup.exe嗎?
因為不是那麼確定是不是每一台電腦都允許安裝軟體。
本篇文章回覆於2017-06-16 08:49
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
最有價值解答

小魚
檢舉此回應
SQLite安裝只是你可以通過SQLite軟體去讀寫資料庫而已,
就算沒有SQLite軟體,你也可以用你的程式去讀寫,
那只是輔助的,不是必要的,
最重要的是dll檔案,要有dll檔案你的程式才能正常執行

如果你是用 Application.StartUp 語法,你讀到的路徑會是在Debug路徑下,
如果是Release版本就會在Release路徑下,
通常Debug會把所有需要的dll都放到Debug路徑下(Release同理)
所以你直接把Debug整個資料夾Copy過去就可以用了,(也可以發行成為安裝檔)
如果用VS執行正常但移到其他地方執行會出錯,
應該就是你少了什麼dll或檔案了,再檢查一下就可以了。

本篇文章回覆於2017-06-16 20:28
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
10樓
作者回應

vbmonk
檢舉此回應
小魚大大您好,我原本是只有下載dll檔,但加入參考時無法加入,所以才安裝SQLite-1.0.66.0-setup.exe

不知是否能提供一下您是下載那一種dll,可以讓我試一下。

本篇文章回覆於2017-06-19 01:38
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
11樓
回應

小魚
檢舉此回應
暫時放在我的網站空間上面了,
http://www.henrychang.tw/upload/SQLite.zip
先去抓吧,哪天想到我就把它移除了,
資料夾裡面三個檔案要加入參考,
然後要把x86跟x64兩個資料夾放到Debug或Release資料夾底下,才能正常運作,
(應該不用x86跟x64都放,不過懶得測試了全部都放進去就沒問題了)
再來你去網路上找一些範例研究一下。
本篇文章回覆於2017-06-19 08:00
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
12樓
回應

Daimom
捐贈 VP 給 Daimom 檢舉此回應
建議你用nuget安裝 sqlite..
本篇文章回覆於2017-06-19 08:44
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
13樓
回應

史努比
檢舉此回應
MSSQL-LocalDB也可以考慮, 語法跟Sql Server完全一樣, 且確定支援BulkInsert語法, 寫入二萬筆, 大概只要1秒吧~~
本篇文章回覆於2017-06-21 12:00
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
14樓
作者回應

vbmonk
檢舉此回應
謝謝小魚大大提供檔案
本篇文章回覆於2017-06-23 13:27
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.