台灣最大程式設計社群網站
線上人數
1596
 
會員總數:240909
討論主題:186668
歡迎您免費加入會員
討論區列表 >> VB.NET >> 使用VB.NET連結MYSQL檔案存取CSV
[ 變換順序 ]  
[我要回覆]
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
使用VB.NET連結MYSQL檔案存取CSV
價值 : 50 QP  點閱數:241 回應數:16

樓主

高培源
門外漢
0 6
116 24
發送站內信

使用VB.NET連結MYSQL檔案存取CSV
這個問題困擾我很久了 希望大家能幫我解答
我有買2本書 但是基本上 書上教的都是把 想要存取的資料已經打在程式碼上了 也沒有連結MYSQL
我找了很多網站 基本上也沒有先關資訊
都是直接VB連結EXCEL 或者 EXCEL匯出匯入VB
而我知道MYSQL可以直接匯出成CSV檔 但是轉下來的檔案都是""UTF-8碼<檔首無BOM編碼>"" 必須改成""UTF-8碼"" 中文才不會變成亂碼 如果我每次用MYSQL匯出都要這樣轉檔 那多麻煩
我到底要怎麼用VB.NET抓到MYSQL資料過的資料後 匯出轉成CSV檔??
希望高手幫幫我 這程式到底要怎麼下手 怎麼打?

搜尋相關Tags的文章: [ VB.NET連結MYSQL檔案存取CSV ] ,
本篇文章發表於2017-09-27 14:07
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

Daimom
捐贈 VP 給 Daimom 檢舉此回應
請愛用Google
搜尋 vb.net csv
第三篇
本篇文章回覆於2017-09-30 08:39
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

高培源
檢舉此回應
那篇我看過了
有點不太懂 他再說甚麼 做不太出來
GOOGLE YOUTUBE 我都找過了
我確實是有做過找資料的功課 還是做不出來 謝謝您Daimom 感恩!!
本篇文章回覆於2017-09-30 11:07
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

Daimom
捐贈 VP 給 Daimom 檢舉此回應
那如果說你看過了不懂,
可以貼個連結 然後直接說你哪一段看不懂,
這樣會比較快喔。
說不定還會請出作者直接回你答案。
本篇文章回覆於2017-09-30 12:56
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

高培源
檢舉此回應
這是我 目前做出來的程式碼
Public Class Form1
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Dim Server As String = "Server=localhost ;User=root; Password=; Database=my mysql;"
Dim oDbAdapter As MySqlDataAdapter
Dim oConn As MySqlConnection
oDbAdapter = New MySqlDataAdapter("SELECT * FROM text", Server)
oConn = New MySqlConnection(Server)
oConn.Open()

Dim fileText As String = "C:\Users\z0978\Desktop\Test.csv"
If File.Exists(fileText) Then
File.Delete(fileText)
End If

Dim oExcel As Object
oExcel = CreateObject("Excel.Application")
Dim oBook As Excel.Workbook
Dim oSheet As Excel.Worksheet

oBook = oExcel.Workbooks.Add
oSheet = oExcel.Worksheets(1)

oSheet.Range("A1").Value = "哈哈"

oBook.SaveAs(fileText)
oBook.Close()
oBook = Nothing
oExcel.Quit()
oExcel = Nothing

End Sub
End Class
我目前可以把我需要的文字存到Excel的A1裡面
我下一步要把MYSQL裡面的資料存到EXCEL裡面 我該怎麼做?
本篇文章回覆於2017-09-30 18:58
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
最有價值解答

Daimom
捐贈 VP 給 Daimom 檢舉此回應
所以你看了哪個網頁然後看不懂?

下一步,你要做的有
1.取得資料庫的資料
2.將資料庫的資料塞到excel

你上面的程式有把資料塞到excel了,
所以你現在缺的也只剩下取得資料庫的資料。
https://msdn.microsoft.com/zh-tw/library/haa3afyz%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396
本篇文章回覆於2017-10-02 08:50
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
作者回應

高培源
檢舉此回應
感謝 Daimom !!
我想我是 語法不熟悉 不知道怎麼使用
如網站所說 我是要使用DataReader來拿到資料庫的資料
我查了關於DataReader的使用範例他們都是用 ""Imports System.Data.SqlClient""
這樣我在使用connection跟SqlCommand才不會出錯 而我把網站的程式碼貼上去 沒紅字是沒問題的
而之前我查的網站都是使用Imports MySql.Data.MySqlClient 這兩總有關西嗎??

當它找到資料的時候 會做Do While否則他就會顯示No rows found
我改了一下 他找到資料時候 我給 Label1 它顯示 似乎沒有辦法 會紅字 我要怎麼看他的輸出??


而一般來說會有"Server=localhost ;User=root; Password=; Database=my mysql;" 像這樣來指定連結的網站
可是沒有 所以我自己主動加了下去 我新增了一個變數存取指定連結的網站 再給connection 這樣好樣無法使用 我要怎麼指定連結的網站??
本篇文章回覆於2017-10-02 16:50
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
作者回應

高培源
檢舉此回應
我大概知道了 一個是用VB的伺服器再用的 一個是用MYSQL再用的
本篇文章回覆於2017-10-02 18:21
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
作者回應

高培源
檢舉此回應
我猜考了網頁
http://www.dotnetheaven.com/article/read-the-data-with-the-datareader-object-in-vb.net

我改了一下程式碼
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim cn As String = "Server=localhost ;User=root; Password=; Database=my mysql;"
Dim con As New SqlConnection(cn)
Try
con.Open()
Dim sql As String = "select * from mysql"
Dim cmd As New SqlCommand(sql, con)
Dim myreader As SqlDataReader = cmd.ExecuteReader()
While myreader.Read()
Label1.Text = (myreader("ID").ToString() & ", ")
End While
Catch ex As Exception
WriteLine("Error: " & ex.ToString())
End Try
End Sub

我想要把輸出的資料先加到Label1.Text 看看輸出正不正確 執行後 就會當了
請問 比較好要怎麼改?
本篇文章回覆於2017-10-02 21:39
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
作者回應

高培源
檢舉此回應
我又改了一下程式碼
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim Server As String = "Server=localhost ;User=root; Password=; Database=my mysql;"
Dim oDbAdapter As String = "SELECT * FROM text"
Dim oConn As MySqlConnection
oConn = New MySqlConnection(Server)
Try
oConn.Open()
Dim cmd As New MySqlCommand(oDbAdapter, oConn)
Dim myreader As MySqlDataReader = cmd.ExecuteReader()
Label1.Text = myreader("ID").ToString() + ", "
Catch ex As Exception
Label1.Text = "沒抓到"
End Try
這個沒有問題
可是它似乎抓不到 為什麼呢?
本篇文章回覆於2017-10-02 22:01
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
10樓
作者回應

高培源
檢舉此回應
似乎跟 Label1.Text = myreader("ID").ToString() + ", " 有關
怎麼改我還不知道 程式碼不太熟悉 可以給我一點建議嗎??
本篇文章回覆於2017-10-02 22:03
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
11樓
作者回應

高培源
檢舉此回應
我參考
https://social.msdn.microsoft.com/Forums/exchange/zh-TW/b8e93203-cc2d-4f31-8ec8-7caf54f89a8a/sqllabel?forum=803
我已經成功做出來了
並且也把他轉成EXCEL檔
問題是 他只是把裡面內檔案讀出來
我怎麼把標題也讀出來呢??
例如:
ID 班級 姓名 <<<<沒跑出來
1 101 呵呵 <<<<以下有跑出來
2 102 哈哈

我要怎麼讓他跑出來??
本篇文章回覆於2017-10-03 10:41
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
12樓
回應

Daimom
捐贈 VP 給 Daimom 檢舉此回應
歹勢,最近比較忙。

你要讀標題的話
你讀取excel的第一行就是標題了吧?
不過你的參考是搜尋sql資料庫????
本篇文章回覆於2017-10-06 13:49
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
13樓
作者回應

高培源
檢舉此回應
我是想說可以用 就套看看 結果是成功了 目前程式碼是這樣
Dim oSheet As Excel.Worksheet
Dim i As Integer = 0
Dim FilePath As String = "C:\Users\user\Desktop\Test.csv"
Dim myConnection As MySqlConnection = New MySqlConnection(Str)
Dim myCommand As MySqlCommand = New MySqlCommand("SELECT * FROM " + File1 + "", myConnection)
myConnection.Open()
Dim myReader As MySqlDataReader
myReader = myCommand.ExecuteReader()
While (myReader.Read)
Using fs As FileStream = New FileStream(FilePath, FileMode.Append)
Using sw As StreamWriter = New StreamWriter(fs, Encoding.Default)

Dim str As String = myReader.GetString(0)
i = i + 1
sw.WriteLine(str)
sw.Flush()
End Using
End Using
End While
End Sub

取讀不到標題 Daimom大大可以試試看
本篇文章回覆於2017-10-11 14:19
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
14樓
作者回應

高培源
檢舉此回應
變數 i 沒用 我沒刪乾淨
本篇文章回覆於2017-10-11 14:20
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
15樓
回應

Daimom
捐贈 VP 給 Daimom 檢舉此回應
你是要把資料庫的標題寫進去csv裡面?
請直接 用 sw.WriteLine(str) 的方式把標題寫進去.....

P.S 請善用程式碼標籤
本篇文章回覆於2017-10-11 14:58
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
[ 變換順序 ]   

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