台灣最大程式設計社群網站
線上人數
1268
 
會員總數:240681
討論主題:186538
歡迎您免費加入會員
討論區列表 >> VB.NET >> cvs讀到Datagridview中
[ 變換順序 ]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
cvs讀到Datagridview中
價值 : 199 QP  點閱數:165 回應數:7

樓主

Chen Rickey
門外漢
0 5
136 13
發送站內信

沒讀取過csv txt之類的經驗

請大神們幫忙

檔案名稱=rec+西元年月日.csv '每天都會產出一個檔案,抓取的時候要加變數!? 希望一次可以抓整個月的資料'


內容會是:

20170731,0802,1,1,0000000519,E123
.
.
.

想要讀取到Datagridview上,在新增到SQL上




搜尋相關Tags的文章: [ vb.net ] , [ vb ] , [ csv ] , [ txt ] ,
本篇文章發表於2017-08-25 14:56
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

Lester
捐贈 VP 給 Lester 檢舉此回應
讀取CSV檔可以等同讀取TXT檔再用字串SPLIT(strReader,",")去取得各欄位的值




塞回資料庫的時候,可直接foreach建立你的sql指令
dim strSQL as string = ""
for each r as datagridviewrow in dg.rows
strSQL &= INSERT IN ...."
next

db.execute(strSQL)
本篇文章回覆於2017-08-25 16:52
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

Chen Rickey
檢舉此回應
Dim strReaders As String = "讀到的資料" << 這個我需要改成變數 rec'yyyymmdd' 每天都會產出一個

我想要讓程式一次撈取全部當月份資料寫入
本篇文章回覆於2017-08-25 18:25
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

Lester
捐贈 VP 給 Lester 檢舉此回應
每一天的檔案都獨立的話
你可以在讀檔的時候就解析檔名

然後在每一段字串前加 strF &"," & ....


本篇文章回覆於2017-08-25 21:24
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

Daimom
捐贈 VP 給 Daimom 檢舉此回應
一步一步來,
首先你要確定幾件事,
1.資料夾內檔案是否會新增?
是否需要即時擷取資料,是的話先把歷史資料匯入,再用 FileSystemWatcher 去判斷檔案是否有新增
2.不會新增
直接整批匯入。

再來,先用抓出該資料夾底下的所有檔案(不管是1.2.),可用 Directory.GetFiles
再來就一個一個檔案掃內容了..
本篇文章回覆於2017-08-25 22:26
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
作者回應

Chen Rickey
檢舉此回應
回覆3樓大大
因為沒有可存取的 'Replace' 接受此引數數目,所以多載解析失敗

4樓大大
在資料夾內的檔案會新增,但產生出來的資料不會再更改

2.整批匯入? 該如何做?
Directory.GetFiles 這個我沒有用過,可否依照我的需求協助範例參考?
本篇文章回覆於2017-08-28 10:06
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
回應

Lester
捐贈 VP 給 Lester 檢舉此回應
欸都…不是你說檔名就有日期資料的嗎?
rec+date.csv所以上面的動作就只有取檔名把rec去掉,就剩日期了。


整批匯入的話,就利用getfiles()把所有的檔案都抓出來就可以了。
getfiles()可以參考這個項目
https://msdn.microsoft.com/zh-tw/library/system.io.directory.getfiles(v=vs.110).aspx


本篇文章回覆於2017-08-29 11:18
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
回應

Daimom
捐贈 VP 給 Daimom 檢舉此回應
檔案會自己新增的話,記得要用 FileSystemWatcher 偵測新的檔案。
然後範例......google吧 很多
本篇文章回覆於2017-08-29 12:48
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
[ 變換順序 ]   
1

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