 |
|
ช่วยดูวนรูปให้หน่อยได้ไหมครับ ทำไมมันวน loop 2รอบ VB.net |
|
 |
|
|
 |
 |
|
คือaddข้อมูลอันเดียว แต่มันadd เพิ่ม ผมวน loop ตรงไหนผิดหรือป่าวครับ
Code (VB.NET)
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
'บันทึก
Dim Data, Series, Year, ModelSerial, URL As String
Dim td As New ConnectDb
td.OpenConn()
Dim dtm As New DataTable
For i As Integer = 0 To Me.DataGridView2.Rows.Count - 2
Data = Me.DataGridView2.Rows(i).Cells(0).Value
Series = Me.DataGridView2.Rows(i).Cells(1).Value
Year = Me.DataGridView2.Rows(i).Cells(2).Value
ModelSerial = Me.DataGridView2.Rows(i).Cells(3).Value
URL = Me.DataGridView2.Rows(i).Cells(4).Value
dtm = td.ReadData("INSERT INTO Model(Data,Series,Year,ModelSerial,URL)VALUES('" & Data & "','" & Series & "','" & Year & "','" & ModelSerial & "','" & URL & "')")
td.CloseConn()
MessageBox.Show("555") 'เทสวนรูป
Next i
MessageBox.Show(" บันทึกข้อมูลเรียบร้อยแล้ว", " ข้อความจากระบบ", MessageBoxButtons.OK, MessageBoxIcon.Asterisk)
End Sub
Tag : .NET, MySQL, VB.NET, VS 2008 (.NET 3.x)
|
|
 |
 |
 |
 |
Date :
2014-07-09 09:42:15 |
By :
aoffyeiei |
View :
2026 |
Reply :
12 |
|
 |
 |
 |
 |
|
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Insert ข้องมูลไม่ใช้คลาส SqlCommand หรอครับ 
|
 |
 |
 |
 |
Date :
2014-07-09 09:45:51 |
By :
01000010 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
09. For i As Integer = 0 To Me.DataGridView2.Rows.Count - 2
มันเริ่มจาก 0 ครับ ก็ต้องดูว่า (Me.DataGridView2.Rows.Count - 2) มันเท่ากับเท่าไหร่ครับ
|
 |
 |
 |
 |
Date :
2014-07-09 09:47:10 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
คือมันก็บันทึกข้อมูลลง database ได้ปกตินะครับ แต่มันบันทึก2รอบ
|
 |
 |
 |
 |
Date :
2014-07-09 09:57:11 |
By :
aoffyeiei |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เพราะมันผ่าน for i สองครั้งไงครับ
้
ถ้า row.cout - 2 = 1 มันก็จะวน 2 รอบ ดังนั้นผมถึงให้คุณเช็ค สูตร ดูครับ ว่า row.count - 2 ได้ 0 หรือเปล่า เพื่อที่มันจะได้
ทำแค่ครั้งเดียวครับ คือผมไม่ได้เห้นหน้าpage ก้ต้องบอกให้คุณเช็คดูเอาเองครับ
|
 |
 |
 |
 |
Date :
2014-07-09 10:01:57 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
0 - 1 = 2 รอบ ครับ ก็ให้ - 3 ครับ
|
 |
 |
 |
 |
Date :
2014-07-09 10:20:27 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ตอบความคิดเห็นที่ : 4 เขียนโดย : Chaidhanan เมื่อวันที่ 2014-07-09 10:01:57
รายละเอียดของการตอบ ::
คือผมต้องการ insert ข้อมูลจาก datagridview อันล่างอ่ะครับ insert เข้า database ส่วนอันบนแค่ โชว์ข้อมูลใน database
อันนี้ code
Code (VB.NET)
Public Class Insert
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'เพิ่มไฟล์
Dim dialogOpenFiles As New OpenFileDialog()
dialogOpenFiles.Multiselect = True
dialogOpenFiles.Filter = "All Files (*.*)|*.*"
If dialogOpenFiles.ShowDialog Then
Dim i As String
For Each i In dialogOpenFiles.FileNames
Dim s() As String = i.Split("\")
For j As Integer = 0 To UBound(s)
If j = 8 Then
'Me.ListBox1.Items.Add(s(8))
ElseIf j = 7 Then
'Me.ListBox2.Items.Add(s(7))
ElseIf j = 6 Then
'Me.ListBox3.Items.Add(s(6))
ElseIf j = 5 Then
'Me.ListBox4.Items.Add(s(5))
End If
Next j
Me.DataGridView2.Rows.Add(s(5), s(6), s(7), s(8), i)
Next i
End If
End Sub
Private Sub ListView1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim dataAdapter As New Data.SqlClient.SqlDataAdapter
'บันทึก
Dim Data, Series, Year, ModelSerial, URL As String
Dim td As New ConnectDb
td.OpenConn()
Dim dtm As New DataTable
For i As Integer = 0 To Me.DataGridView2.Rows.Count - 2
Data = Me.DataGridView2.Rows(i).Cells(0).Value.ToString
Series = Me.DataGridView2.Rows(i).Cells(1).Value.ToString
Year = Me.DataGridView2.Rows(i).Cells(2).Value.ToString
ModelSerial = Me.DataGridView2.Rows(i).Cells(3).Value.ToString
URL = Me.DataGridView2.Rows(i).Cells(4).Value.ToString
'dataAdapter.InsertCommand.Parameters(0).Value = DataGridView2.Rows(i).Cells(0).Value
'dataAdapter.InsertCommand.Parameters(1).Value = DataGridView2.Rows(i).Cells(1).Value
'dataAdapter.InsertCommand.Parameters(2).Value = DataGridView2.Rows(i).Cells(2).Value
'dataAdapter.InsertCommand.Parameters(3).Value = DataGridView2.Rows(i).Cells(3).Value
dtm = td.ReadData("INSERT INTO Model(Data,Series,Year,ModelSerial,URL)VALUES('" & Data & "','" & Series & "','" & Year & "','" & ModelSerial & "','" & URL & "')")
MessageBox.Show(DataGridView2.Rows.Count) 'เทสวนรูป
Next i
td.CloseConn()
MessageBox.Show(" บันทึกข้อมูลเรียบร้อยแล้ว", " ข้อความจากระบบ", MessageBoxButtons.OK, MessageBoxIcon.Asterisk)
End Sub
Private Sub Insert_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'TODO: This line of code loads data into the 'TestDataDataSet.Model' table. You can move, or remove it, as needed.
Me.ModelTableAdapter.Fill(Me.TestDataDataSet.Model)
End Sub
End Class
|
 |
 |
 |
 |
Date :
2014-07-09 10:23:41 |
By :
aoffyeiei |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Code
46.For i As Integer = 0 To Me.DataGridView2.Rows.Count - 2
47.Data = Me.DataGridView2.Rows(i).Cells(0).Value.ToString
48.Series = Me.DataGridView2.Rows(i).Cells(1).Value.ToString
49.Year = Me.DataGridView2.Rows(i).Cells(2).Value.ToString
50.ModelSerial = Me.DataGridView2.Rows(i).Cells(3).Value.ToString
51.URL = Me.DataGridView2.Rows(i).Cells(4).Value.ToString
52.
53.'dataAdapter.InsertCommand.Parameters(0).Value = DataGridView2.Rows(i).Cells(0).Value
54.'dataAdapter.InsertCommand.Parameters(1).Value = DataGridView2.Rows(i).Cells(1).Value
55.'dataAdapter.InsertCommand.Parameters(2).Value = DataGridView2.Rows(i).Cells(2).Value
56.'dataAdapter.InsertCommand.Parameters(3).Value = DataGridView2.Rows(i).Cells(3).Value
57. 58.dtm = td.ReadData("INSERT INTO Model(Data,Series,Year,ModelSerial,URL)VALUES('" & Data & "','" & Series & "','" & Year & "','" & ModelSerial & "','" & URL & "')")
59. 60.MessageBox.Show(DataGridView2.Rows.Count) 'เทสวนรูป
61.Next i
แก้เป็น
Code (VB.NET)
Data = Me.DataGridView2.Rows(0).Cells(0).Value.ToString
Series = Me.DataGridView2.Rows().Cells(1).Value.ToString
Year = Me.DataGridView2.Rows(0).Cells(2).Value.ToString
ModelSerial = Me.DataGridView2.Rows(0).Cells(3).Value.ToString
URL = Me.DataGridView2.Rows(0).Cells(4).Value.ToString
'dataAdapter.InsertCommand.Parameters(0).Value = DataGridView2.Rows(0).Cells(0).Value
'dataAdapter.InsertCommand.Parameters(1).Value = DataGridView2.Rows(0).Cells(1).Value
'dataAdapter.InsertCommand.Parameters(2).Value = DataGridView2.Rows(0).Cells(2).Value
'dataAdapter.InsertCommand.Parameters(3).Value = DataGridView2.Rows(0).Cells(3).Value
dtm = td.ReadData("INSERT INTO Model(Data,Series,Year,ModelSerial,URL)VALUES('" & Data & "','" & Series & "','" & Year & "','" & ModelSerial & "','" & URL & "')")
ไม่ต้องไปวนลูปให้เมื่่อยครับ เมื่อข้างล่างมันมีแค่ record เดียว
เป็น temporary พอ update เสร็จก็เคลียร์ เริ่มเข้ารายการใหม่ใช่ไหมครับ
|
ประวัติการแก้ไข 2014-07-09 10:37:21
 |
 |
 |
 |
Date :
2014-07-09 10:36:24 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ตอบความคิดเห็นที่ : 8 เขียนโดย : Chaidhanan เมื่อวันที่ 2014-07-09 10:36:24
รายละเอียดของการตอบ ::
หลาย record ครับ คือเหมือนพอผมกดปุ่มเลือกไฟล์ผมก็ broweอมา สมมติ ไฟล์เป็น pdf คือ มี pdf 20 ไฟล์
ผมก็ browe มันมาลงใน datagridview (อันล่าง) มันก็มี20 record ตามที่เรา browe มันมา
แต่พอกด บันทึกลง database แล้ว มันกลายเป็น 1record มีอีก 1record ที่เหมือนกัน
ก็กลายเป็น 40ไฟล์ที่อยู่ใน database ครับ
เช่น ผม browe ไฟล์มาชื่อ a,b,c,d
ตอนอยู่ใน datagridview(อันล่าง) มันก็ขึ้นเป็น
a
b
c
d
แต่พอกดบันทึกลง database แล้วมาเปิดดู
มันเป็น
a
a
b
b
c
c
d
d
ครับผม ><
|
ประวัติการแก้ไข 2014-07-09 10:53:20
 |
 |
 |
 |
Date :
2014-07-09 10:47:55 |
By :
aoffyeiei |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
อ้อเข้าใจแล้วครับ
event ทำงาน 2 ครั้ง คล้ายกับกดปุ่ม ค้างไว้ใช่ไหมครับ
งั้นต้องสร้างตัวแปร ไว้ป้องกันการทำงานซ้อน
Public Class Insert
Dim isPress As Boolean = false;
Code (VB.NET)
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
if not isPress then
isPress = true
doevent(); // ไม่แน่ใจว่าคำสั่งนี้เท่าไหร่ ความหมายคือให้ทำ process อื่นก่อนครับ ผมไม่ได้ใช้นานแล้ว
' ทำงานต่อตามปกติ
isPress = false
endif
end sub
|
 |
 |
 |
 |
Date :
2014-07-09 10:58:09 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ตอบความคิดเห็นที่ : 10 เขียนโดย : Chaidhanan เมื่อวันที่ 2014-07-09 10:58:09
รายละเอียดของการตอบ ::
เอิ่ม มันไม่ใช่แบบนี้อ่ะครับ คือ
อันนี้คือผมกด browe มา 2ไฟล์ใช่ไหมครับ(เป็นไฟล์ที่ชื่อต่างกัน URLต่างกัน) มันก็จะมาอยู่ datagridview (อันล่าง) แบบนี้
ตามกรอบสีแดงเลยครับ
จากนั้นพอผมกดบันทึก
ข้อมูลจาก gridview อันล่าง
พอมันบันทึกลง database แล้ว มันมี อย่างละ2อัน
ตามกรอบเหลืองเลยครับ
ผมแค่อยากทราบว่า ผมควรวน loop อย่างไรดีให้มัน ไม่วนซ้ำเดิม
code
Code (VB.NET)
Public Class Insert
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'เพิ่มไฟล์
Dim dialogOpenFiles As New OpenFileDialog()
dialogOpenFiles.Multiselect = True
dialogOpenFiles.Filter = "All Files (*.*)|*.*"
If dialogOpenFiles.ShowDialog Then
Dim i As String
For Each i In dialogOpenFiles.FileNames
Dim s() As String = i.Split("\")
For j As Integer = 0 To UBound(s)
If j = 8 Then
'Me.ListBox1.Items.Add(s(8))
ElseIf j = 7 Then
'Me.ListBox2.Items.Add(s(7))
ElseIf j = 6 Then
'Me.ListBox3.Items.Add(s(6))
ElseIf j = 5 Then
'Me.ListBox4.Items.Add(s(5))
End If
Next j
Me.DataGridView2.Rows.Add(s(5), s(6), s(7), s(8), i)
Next i
End If
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
'บันทึก
Dim Datas, Seriess, Years, ModelSerials, URLs As String
Dim td As New ConnectDb
td.OpenConn()
Dim dtm As New DataTable
For i As Integer = 0 To Me.DataGridView2.Rows.Count - 2
Datas = Me.DataGridView2.Rows(i).Cells(0).Value.ToString
Seriess = Me.DataGridView2.Rows(i).Cells(1).Value.ToString
Years = Me.DataGridView2.Rows(i).Cells(2).Value.ToString
ModelSerials = Me.DataGridView2.Rows(i).Cells(3).Value.ToString
URLs = Me.DataGridView2.Rows(i).Cells(4).Value.ToString
dtm = td.ReadData("INSERT INTO Model(Data,Series,Year,ModelSerial,URL)VALUES('" & Datas & "','" & Seriess & "','" & Years & "','" & ModelSerials & "','" & URLs & "')")
td.CloseConn()
'MessageBox.Show(DataGridView2.Rows.Count - 2) 'เทสวนรูป
Next
MessageBox.Show(" บันทึกข้อมูลเรียบร้อยแล้ว", " ข้อความจากระบบ", MessageBoxButtons.OK, MessageBoxIcon.Asterisk)
End Sub
Private Sub Insert_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'TODO: This line of code loads data into the 'TestDataDataSet.Model' table. You can move, or remove it, as needed.
Me.ModelTableAdapter.Fill(Me.TestDataDataSet.Model)
End Sub
End Class
|
 |
 |
 |
 |
Date :
2014-07-09 13:31:52 |
By :
aoffyeiei |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|