Public Function GetFilesInFolder(strPath As String, Optional _Extension As String = ".MP3") As List(Of String)
Dim result As New List(Of String)
Dim stack As New Stack
stack.Push(strPath)
While stack.Count > 0
Dim dir As String = stack.Pop()
Dim _ext As String = IIf((_Extension.Substring(0, 1) <> "*"), "*" + _Extension, _Extension)
result.AddRange(System.IO.Directory.GetFiles(dir, _ext))
Dim directoryName As String = ""
For Each directoryName_loopVariable As String In System.IO.Directory.GetDirectories(dir)
directoryName = directoryName_loopVariable
stack.Push(directoryName)
Next
End While
Return result
End Function
Code (VB.NET)
Dim Files As List(Of String) = GetFilesInFolder("X:\REPORT\Arsenic", ".Report")
For Each file As String In Files
'ยืมพี่วินมาใช้นะครับ
If dataGridView.Rows(i).Cells("ABC").Value.ToString() <> "" Then
' Insert Statement
End If
Next
Public Function GetFilesInFolder(ByVal strPath As String, Optional ByVal _Extension As String = ".xlsx") As List(Of String)
Dim result As New List(Of String)
Dim stack As New Stack
stack.Push(strPath)
While stack.Count > 0
Dim dir As String = stack.Pop()
Dim _ext As String = IIf((_Extension.Substring(0, 1) <> "*"), "*" + _Extension, _Extension)
result.AddRange(System.IO.Directory.GetFiles(dir, _ext))
Dim directoryName As String = "D:\FileData\Excel"
For Each directoryName_loopVariable As String In System.IO.Directory.GetDirectories(dir)
directoryName = directoryName_loopVariable
stack.Push(directoryName)
Next
End While
Return result
End Function
เแล้วเวลาเราจะเรียกใช้งาน Function GetFilesInFolder เราจะเรียกยังไงครับ
Dim Files As List(Of String) = GetFilesInFolder("X:\REPORT\Arsenic", ".Report")
For Each file As String In Files
'ยืมพี่วินมาใช้นะครับ
If dataGridView.Rows(i).Cells("ABC").Value.ToString() <> "" Then
' Insert Statement
End If
Next
เขาว่ามางั้นอ่าครับในคำตอบ No. 2
บ้านๆคือ
1 . List file มาก่อนครับ
2 . Insert Statement
ปล
อย่างจะใช้ใน "D:\FileData\Excel"
ก๊
Code (VB.NET)
1 . List file มาก่อนครับ
Dim Files As List(Of String) = GetFilesInFolder( "D:\FileData\Excel", ".xlsx")
2 . Insert Statement
For Each file As String In Files
'ยืมพี่วินมาใช้นะครับ
If dataGridView.Rows(i).Cells("ABC").Value.ToString() <> "" Then
' Insert Statement
End If
Next
ขั้นตอนการรัน
1.กด Start
2.เอารายการไพล์ใน Listbox เพิ่มเข้า SQL Auto เลย
3.จบการทำงาน
Code (VB.NET)
Imports System.IO
Imports System.Text
Imports System.Data.OleDb
Imports System.Data.SqlClient
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Label5.Text = ""
End Sub
Sub Show_Data()
Try
Dim Myconnection As System.Data.OleDb.OleDbConnection
Dim dataset As System.Data.DataSet
Dim MyCommand As System.Data.OleDb.OleDbDataAdapter
Dim path As String = TextBox1.Text & "\" & ListBox1.SelectedItem.ToString
Myconnection = New System.Data.OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=Excel 12.0;")
MyCommand = New System.Data.OleDb.OleDbDataAdapter("select * from [Sheet1$]", Myconnection)
dataset = New System.Data.DataSet
MyCommand.Fill(dataset)
DataGridView1.DataSource = dataset.Tables(0)
Myconnection.Close()
Catch ex As Exception
MsgBox(ex.Message.ToString)
End Try
End Sub
Sub LoadingListFileDire()
Dim myDirInfo As DirectoryInfo
Dim arrFileInfo As Array
Dim myFileInfo As FileInfo
myDirInfo = New DirectoryInfo(("D:/FileData/Excel/"))
arrFileInfo = myDirInfo.GetFiles("*.xlsx")
For Each myFileInfo In arrFileInfo
ListBox1.Items.Add(myFileInfo.Name)
Next myFileInfo
myDirInfo = Nothing
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
DataGridView1.DataSource = Nothing
Show_Data()
End Sub
Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click
Try
Application.DoEvents()
Dim cn As New SqlConnection("Data Source=OLE-PC\SQLEXPRESS;Initial Catalog=DATA1;Integrated Security=True")
cn.Open()
Dim cm As New SqlCommand
With cm
.Connection = cn
For i As Integer = 0 To DataGridView1.RowCount - 1
.CommandText = "insert into Data_Name1 values('" & DataGridView1.Rows(i).Cells(0).Value & "','" & DataGridView1.Rows(i).Cells(1).Value & "','" & DataGridView1.Rows(i).Cells(2).Value & "','" & DataGridView1.Rows(i).Cells(3).Value & "')"
.ExecuteNonQuery()
Next
End With
cm.Dispose()
cm = Nothing
With cn
.Close()
.Dispose()
End With
cn = Nothing
MsgBox("Done", MsgBoxStyle.Information, "info")
btnSave.Enabled = True
Catch ex As Exception
MsgBox("Error")
End Try
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
DataGridView1.DataSource = Nothing
End Sub
Private Sub RefreshData()
'ตั้งค่า OleDbConnection
Dim _ConnectionString As String
Dim conn As System.Data.OleDb.OleDbConnection
'loop เพื่อ เอาข้อมูลในแต่ละไฟล์มาใส่ใน DataGridView
For Each myFileInfo As String In System.IO.Directory.GetFiles(txtPath.Text, ".xlsx")
ListBox1.Items.Add(myFileInfo)
If conn.State = ConnectionState.Open Then
conn.Close()
End If
_ConnectionString = (Convert.ToString("Data Source=") & myFileInfo) + "; Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties=Excel 12.0;"
conn = New System.Data.OleDb.OleDbConnection(_ConnectionString)
conn.Open()
Dim adapter As New System.Data.OleDb.OleDbDataAdapter("SELECT * FROM `mg_Kg$Print_Area`", conn)
Dim ds As New System.Data.DataSet()
adapter.Fill(ds)
If DataGridView2.RowCount - 1 > 0 Then
For i As Integer = 0 To DataGridView2.RowCount - 1
ds.Tables(0)(i).Item(0).ToString()
'เอา เอาข้อมูลในแต่ละ Rows มาใส่ใน DataGridView
DataGridView1.Rows.Add(ds.Tables(0)(i).Item(0).ToString(), ds.Tables(0)(i).Item(1).ToString(), ds.Tables(0)(i).Item(2).ToString())
Next
End If
conn.Close()
Next
' แล้วมันก็ครบทุกไฟล์ 55555
End Sub
Private Sub RefreshData()
'ตั้งค่า OleDbConnection
Dim _ConnectionString As String
Dim conn As New System.Data.OleDb.OleDbConnection
'loop เพื่อ เอาข้อมูลในแต่ละไฟล์มาใส่ใน DataGridView (C:\Users\pannita_w\Desktop\Data1)
For Each myFileInfo As String In System.IO.Directory.GetFiles(TextBox3.Text, ".xlsx")
' เอาชื่อ List file ทั้่งหมดมาแสดงใน Listbox
ListBox1.Items.Add(TextBox3.Text)
If conn.State = ConnectionState.Open Then
conn.Close()
End If
_ConnectionString = (Convert.ToString("Data Source=") & myFileInfo) + "; Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties=Excel 12.0;"
conn = New System.Data.OleDb.OleDbConnection(_ConnectionString)
conn.Open() ' Data อยู่ใน Sheet = Data
Dim adapter As New System.Data.OleDb.OleDbDataAdapter("SELECT * FROM [Data$]", conn)
Dim ds As New System.Data.DataSet()
adapter.Fill(ds)
' Gridview 2 To 1 (ช่วยอธิบายด้วยนะครับ ผมงงมากเลย Gridview 2 To 1 )
If DataGridView1.RowCount - 1 > 0 Then
For i As Integer = 0 To DataGridView1.RowCount - 1
ds.Tables(0)(i).Item(0).ToString()
'เอา เอาข้อมูลในแต่ละ Rows มาใส่ใน DataGridView
DataGridView1.Rows.Add(ds.Tables(0)(i).Item(0).ToString(), ds.Tables(0)(i).Item(1).ToString(), ds.Tables(0)(i).Item(2).ToString())
Next
End If
conn.Close()
Next
End Sub
Private Sub RefreshData()
'ตั้งค่า OleDbConnection
Dim _ConnectionString As String
Dim conn As New System.Data.OleDb.OleDbConnection
'loop เพื่อ เอาข้อมูลในแต่ละไฟล์มาใส่ใน DataGridView (C:\Users\pannita_w\Desktop\Data1)
For Each myFileInfo As String In System.IO.Directory.GetFiles(TextBox3.Text, ".xlsx")
' เอาชื่อ List file ทั้่งหมดมาแสดงใน Listbox
ListBox1.Items.Add(TextBox3.Text)
If conn.State = ConnectionState.Open Then
conn.Close()
End If
_ConnectionString = (Convert.ToString("Data Source=") & myFileInfo) + "; Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties=Excel 12.0;"
conn = New System.Data.OleDb.OleDbConnection(_ConnectionString)
conn.Open() ' Data อยู่ใน Sheet = Data
Dim adapter As New System.Data.OleDb.OleDbDataAdapter("SELECT * FROM [Data$]", conn)
Dim ds As New System.Data.DataSet()
adapter.Fill(ds)
' Gridview 2 To 1 (ช่วยอธิบายด้วยนะครับ ผมงงมากเลย Gridview 2 To 1 )
For i As Integer = 0 To ds.Tables(0).Rows.Count
'เอา เอาข้อมูลในแต่ละ Rows มาใส่ใน DataGridView
DataGridView1.Rows.Add(ds.Tables(0)(i).Item(0).ToString(), ds.Tables(0)(i).Item(1).ToString(), ds.Tables(0)(i).Item(2).ToString())
Next
conn.Close()
Next
End Sub
For Each myFileInfo As String In System.IO.Directory.GetFiles(TextBox1.Text, "*.xlsx")
' เอาชื่อ List file ทั้่งหมดมาแสดงใน Listbox
ListBox1.Items.Add(myFileInfo)
Sub RefreshData()
'ตั้งค่า OleDbConnection
Dim _ConnectionString As String
Dim conn As New System.Data.OleDb.OleDbConnection
'loop เพื่อ เอาข้อมูลในแต่ละไฟล์มาใส่ใน DataGridView (C:\Users\pannita_w\Desktop\Data1)
For Each myFileInfo As String In System.IO.Directory.GetFiles(TextBox1.Text, "*.xlsx")
' เอาชื่อ List file ทั้่งหมดมาแสดงใน Listbox
ListBox1.Items.Add(myFileInfo)
If conn.State = ConnectionState.Open Then
conn.Close()
End If
_ConnectionString = (Convert.ToString("Data Source=") & myFileInfo) + "; Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties=Excel 12.0;"
conn = New System.Data.OleDb.OleDbConnection(_ConnectionString)
conn.Open() ' Data อยู่ใน Sheet = Data
Dim adapter As New System.Data.OleDb.OleDbDataAdapter("SELECT * FROM [Sheet1$]", conn)
Dim ds As New System.Data.DataSet()
adapter.Fill(ds)
DataGridView1.DataSource = ds.Tables(0)
' Gridview 2 To 1 (ช่วยอธิบายด้วยนะครับ ผมงงมากเลย Gridview 2 To 1 )
For i As Integer = 0 To ds.Tables(0).Rows.Count
'เอา เอาข้อมูลในแต่ละ Rows มาใส่ใน DataGridView
DataGridView1.Rows.Add(ds.Tables(0)(i).Item(0).ToString(), ds.Tables(0)(i).Item(1).ToString(), ds.Tables(0)(i).Item(2).ToString())
Next
conn.Close()
Next
End Sub
Sub RefreshData()
'ตั้งค่า OleDbConnection
Dim _ConnectionString As String
Dim conn As New System.Data.OleDb.OleDbConnection
'loop เพื่อ เอาข้อมูลในแต่ละไฟล์มาใส่ใน DataGridView (C:\Users\pannita_w\Desktop\Data1)
For Each myFileInfo As String In System.IO.Directory.GetFiles(TextBox1.Text, "*.xlsx")
' เอาชื่อ List file ทั้่งหมดมาแสดงใน Listbox
ListBox1.Items.Add(myFileInfo)
If conn.State = ConnectionState.Open Then
conn.Close()
End If
_ConnectionString = (Convert.ToString("Data Source=") & myFileInfo) + "; Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties=Excel 12.0;"
conn = New System.Data.OleDb.OleDbConnection(_ConnectionString)
conn.Open() ' Data อยู่ใน Sheet = Data
Dim adapter As New System.Data.OleDb.OleDbDataAdapter("SELECT * FROM [Sheet1$]", conn)
Dim ds As New System.Data.DataSet()
adapter.Fill(ds)
' Gridview 2 To 1 (ช่วยอธิบายด้วยนะครับ ผมงงมากเลย Gridview 2 To 1 )
For i As Integer = 0 To ds.Tables(0).Rows.Count
'เอา เอาข้อมูลในแต่ละ Rows มาใส่ใน DataGridView
DataGridView1.Rows.Add(ds.Tables(0)(i).Item(0).ToString(), ds.Tables(0)(i).Item(1).ToString(), ds.Tables(0)(i).Item(2).ToString())
Next
conn.Close()
Next
End Sub