0
SQL 데이터베이스로 Excel 시트를 가져 오려고합니다. sqlbulkcopy를 사용하여 작동시킬 수있었습니다. 나는 지금 그것을 줄 단위로하려고 노력하고있다. 첫 번째 행만 데이터베이스에 추가된다는 점을 제외하고는 코드가 제대로 작동합니다. msgbox를 사용하여 모든 Excel 값을 반복하도록했습니다. 그래서 나는 무엇이 잘못되었는지 확신하지 못한다.VB import excel from SQL
Imports System.Data
Imports System.Data.SqlClient
Imports System.Data.OleDb
Imports System.IO
Imports System.Text
Module Module1
Sub Main()
Dim strSql As String = ""
strSQL = "INSERT INTO tblExcel (Name, Location) VALUES (@Name, @Location)"
'SQL Server Connection String
Dim cn As New SqlClient.SqlConnection
cn.ConnectionString = "Data Source=MyDB;Initial Catalog=DB123;Integrated Security=True"
Dim cmd As New SqlClient.SqlCommand
cmd.Connection = cn
cmd.CommandType = CommandType.Text
cmd.CommandText = strSql
cn.Open()
'Connection String to Excel Workbook
Dim excelConnectionString As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Documents and Settings\cl3j\Desktop\ExcelTest.xlsx;Extended Properties=""Excel 12.0;HDR=YES;"""
' Create Connection to Excel Workbook
Using connection As New System.Data.OleDb.OleDbConnection(excelConnectionString)
'List columns you need from the Excel file
Dim command As New System.Data.OleDb.OleDbCommand("Select [Name],[Location] FROM [Sheet1$]", connection)
connection.Open()
' Create DbDataReader to Data Worksheet
Using dr As System.Data.OleDb.OleDbDataReader = command.ExecuteReader()
If dr.HasRows() then
While dr.Read()
cmd.Parameters.Add("@Name", SqlDbType.VarChar).Value = Convert.ToString(dr.Item("Name"))
cmd.Parameters.Add("@Location", SqlDbType.VarChar).Value = Convert.ToString(dr.Item("Location"))
cmd.ExecuteScalar()
End While
End If
End Using
End Using
cn.Close()
cn = Nothing
End Sub
End Module