Visual_Basic 板


LINE

我想寫一個迴圈 希望可以每6筆就傳進一次資料庫 傳進資料庫之後把Datagridview的那6筆刪掉 等待新的6筆進來 下面是我自己寫的程式碼 一直出錯 請大大們指教 Dim xrow As DataRow = table.NewRow Dim intI As Integer = 1 For intI = 1 To 6 xrow.Item(0) = RemoteIpEndPoint.Address.ToString xrow.Item(1) = txtport.Text xrow.Item(2) = Encoding.ASCII.GetString(receiveBytes) table.Rows.Add(xrow) Next intI --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.121.150.186
1F:推 serhgrt:把Dim xrow as DataRow 放進for 裡面? 09/22 13:43
2F:→ mdjason:不行耶 不知道為啥 都會跳錯誤 09/22 13:52
3F:推 serhgrt:錯誤訊息方便寫上來嗎? 因為也不知道出了啥錯誤? 09/22 16:07
4F:→ mdjason:RUN起來是沒有錯誤 可是直接執行程式的時候 會跳錯誤 09/22 16:10
5F:→ mdjason:我剛又自己試了一次 變成寫入一次 他幫我寫了六次進去... 09/22 16:12
6F:推 serhgrt:這段程式不是要寫入6筆? 錯誤還在嗎? 可以敘述錯誤一下嗎? 09/22 16:19
7F:→ mdjason:我現在變成一次寫進6條 然後寫第二次 變成12條了 09/22 16:38
8F:→ mdjason:我自己也不知道錯誤在哪耶 因為他沒有說明錯誤的點@@Y 09/22 16:41
9F:推 serhgrt:可以po比較完整點的程式碼嗎? 上面那段只能知道寫入6筆@_@ 09/22 16:43
Imports System.IO Imports System.Net.Sockets.Socket Imports System Imports System.Text Imports System.Net Imports System.Net.Sockets Imports Microsoft.VisualBasic Imports System.Runtime.InteropServices Public Class Form1 Inherits System.Windows.Forms.Form Public receivingUdpClient As UdpClient Public RemoteIpEndPoint As New System.Net.IPEndPoint(System.Net.IPAddress.Any, 0) Public ThreadReceive As System.Threading.Thread Dim port As Integer Private table As New DataTable Public Sub ReceiveMessages() Dim receiveBytes As [Byte]() = receivingUdpClient.Receive(RemoteIpEndPoint) txtip.Text = RemoteIpEndPoint.Address.ToString Dim BitDet As BitArray BitDet = New BitArray(receiveBytes) Dim strReturnData As String = System.Text.Encoding.Unicode.GetString(receiveBytes) Dim intI As Integer = 1 For intI = 1 To 6 Dim xrow As DataRow = table.NewRow xrow.Item(0) = RemoteIpEndPoint.Address.ToString xrow.Item(1) = txtport.Text xrow.Item(2) = Encoding.ASCII.GetString(receiveBytes) table.Rows.Add(xrow) Next intI End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click port = txtport.Text receivingUdpClient = New System.Net.Sockets.UdpClient(port) ThreadReceive = New System.Threading.Thread(AddressOf ReceiveMessages) ThreadReceive.Start() txtport.Enabled = True Button2.Enabled = True Button1.Enabled = False DataGridView1.ReadOnly = True txtport.ReadOnly = True End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click ThreadReceive.Abort() receivingUdpClient.Close() Button2.Enabled = False Button1.Enabled = True txtip.Text = "" DataGridView1.Enabled = False txtport.ReadOnly = False End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load table.Columns.Add("IP") table.Columns.Add("PORT") table.Columns.Add("MSG") DataGridView1.DataSource = table DataGridView1.Columns(0).Width = 100 DataGridView1.Columns(1).Width = 70 DataGridView1.Columns(2).Width = 230 End Sub End Class ※ 編輯: mdjason 來自: 140.121.150.186 (09/22 16:45)
10F:→ mdjason:我忘記我能編輯了 一直用推文 @@ 09/22 16:45
11F:推 serhgrt:你的DataTable是全域的 會變成累加,移至寫入6筆那邊吧! 09/22 16:52
12F:→ mdjason:好的 我再試試看 09/22 16:53
13F:→ mdjason:我移入Public Sub ReceiveMessages()那邊 他不給我宣告耶 09/22 16:55
Public Sub ReceiveMessages() Dim receiveBytes As [Byte]() = receivingUdpClient.Receive(RemoteIpEndPoint) txtip.Text = RemoteIpEndPoint.Address.ToString Dim BitDet As BitArray BitDet = New BitArray(receiveBytes) Dim strReturnData As String = System.Text.Encoding.Unicode.GetString(receiveBytes) ***Dim table As New DataTable*** Dim intI As Integer = 1 For intI = 1 To 6 Dim xrow As DataRow = table.NewRow xrow.Item(0) = RemoteIpEndPoint.Address.ToString xrow.Item(1) = txtport.Text xrow.Item(2) = Encoding.ASCII.GetString(receiveBytes) table.Rows.Add(xrow) Next intI End Sub 我改成*** ***那樣 可是還是一次寫入6筆一樣的數據耶 ※ 編輯: mdjason 來自: 140.121.150.186 (09/22 16:58)
14F:推 serhgrt:改成Dim table As New Datatable 放入? 09/22 16:57
15F:推 serhgrt:把抓封包資料的那幾段程式擺進去for,讓他重新取封包資料 09/22 17:15
16F:→ mdjason:非常感謝大大的幫忙 只是還是一次寫進6筆相同資料 頭疼>< 09/22 17:21
17F:推 serhgrt:你可能要查一下封包資料是否都沒變或是沒再重新抓取? 09/22 17:27
18F:→ mdjason:應該是沒重新抓取 我每次都要Stop→Start才能再收一次 09/22 17:33
19F:→ mathlinka:先將 DataTable 設為全域,ReceiveMessages 裡面不要寫 09/22 19:06
20F:→ mathlinka:迴圈,用 if DataTable.Rows.Count = 6 Then 09/22 19:07
21F:→ mathlinka:寫入資料庫 , 清空 DataTable 09/22 19:07
22F:→ mdjason:嗯 感謝樓上大大 還在實驗室練習@@ 09/22 20:00







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Boy-Girl站內搜尋

TOP