รายละเอียดของการตอบ ::
ตอบแบบบ้านๆ ตามความคิดเห็นส่วนตัว นะครับ
Code
i = 2 ***** ทำไม i ต้องเท่ากัน 2 ด้วยครับ ผมลองใส่ 1 ก็บันทึกได้เหมือนกัน
ต้องรื้อมาจาก
xlSheet1.Cells.Item(i, 1).Value i=แถวที่ 1= คอลัมที่
i จะเริ่มจากเท่าไหร่ก็ได้ ตราบที่มันมากกว่า 0
ถามกลับไปว่า แล้ว ข้อมูล ใน excel ของเรา เริ่มจากแถวที่เท่าไหร่ นั่นแหละคือจุดเริ่มต้น เป็น 5 เป็น 10 ก็ได้แล้วแต่ว่าจะต้องการข้อมูลแรกตรงแถวไหนนั่นเอง
Code
อยากถามว่า dr = dt.newrow คือมันไปดึง dt ของข้างบนมาอ่านใช่ป่าวครับ
อันนี้ต้องศึกษาเรื่อง datatable ครับ
จากโค้ด จะประมาณ ว่า เอา excel มายัดลง datatable ส่วนจะเอาไป ออกเป็น datagrid หรือทำอย่างอื่นก็ย่อมได้
ส่วนของท่าน วัตถุประสงค์ มันบอกอยู่แล้วว่าจะบันทึกข้อมูลจาก excel ดังนั้นไม่จำเป็นต้องผ่าน datatable สามารถ ตัดลงตอนบันทึกข้อมูลได้เลย
Code
แล้วก็อีก 1 code ทำไม่ต้อง i = i + 1 ความหมายมันคือยังไงครับ
เพราะว่าในโค้ดใช้ Do While (ลองหาอ่านดูละกัน) มันจะไม่เพิ่มจำนวน/step เหมือน for loop
เพราะชื่อมันก็บอกอยู่แล้วว่ามันจะวน
จนกระทั่ง ตรงตามเงื่อนไขเงื่อน
เพราะงั้น หาก ทำงานกับ ตัวเลข เราจะต้อง เพิ่มเองเหมือน
i = i + 1
ตามข้อสงสัยนั่นเอง
หากยังมีข้อสงสัยทำไมผมถึงใช้
Code (VB.NET)
Using objConn As New SqlConnection(strConn)
objConn.Open()
'code
End Using
ก็เพราะ มือใหม่ส่วนใหญ่ มัก เสียเวลามางมอยู่กับ Connection
เดี๋ยวก็ต้องมา open/close แล้วยังต้องมานั่งเช็คอีกว่าตรงลง เปิดไปยังหว่า
แถมบางราย มัน open อยู่ ก็ close มันซะ แล้ว บรรทัดต่อมาก็เปิดใหม่
การใช้ Using จะตัดปัญหาพวกนี้ได้เลย
ก็ประมาณนี้แหละครับ 5555
สรุปว่า บันทึกได้ปกติ นะครับ