none
EXCEL2000からSQLServer2005へのデータインポート RRS feed

  • 質問

  • 【環境】

    WindowsXP VS2005 EXCEL2000

    EXCEL2000のシートをSQLServer2005にインポートしようと思っています。

    SqlBulkCopy を使用して一括転送を試みていますがうまくいきません。

    参考になるページ、サンプルコートなどがありましたら、教えていただけないでしょうか?

     

    2006年11月7日 14:43

回答

すべての返信

  • 解決いたしました。

     

    2006年11月8日 5:14
  • よろしければ、どのように解決されたのか教えていただけませんでしょうか?
    2006年11月8日 5:36
    モデレータ
  • 下記コードにてインポートできました

    Imports System.Configuration
    Imports System.Data.Common
    Imports System.Data.OleDb
    Imports System.Data.SqlClient
      Public Function ImpExcel() As Integer

            Dim excelConStr As String = ConfigurationManager.ConnectionStrings("Xls").ConnectionString
            Using connection As OleDbConnection = New OleDbConnection(excelConStr)
                Dim command As OleDbCommand = New OleDbCommand("select * from [Sheet1$] ", connection)
                connection.Open()
                Using dr As DbDataReader = command.ExecuteReader
                    Dim sqlConStr As String = ConfigurationManager.ConnectionStrings("SqlDB").ConnectionString
                    Using bulkCopy As SqlBulkCopy = New SqlBulkCopy(sqlConStr)
                        bulkCopy.DestinationTableName = ""
                        Try
                            bulkCopy.WriteToServer(dr)
                        Catch ex As Exception
                            Console.WriteLine(ex.Message)
                        Finally
                            dr.Close()
                        End Try
                    End Using
                End Using
            End Using
        End Function

    APP.CONFIG

        <connectionStrings>
            <add name="SqlDB" connectionString="Data Source=サーバ名;Persist Security Info=True;User ID=ユーザID;Password=パスワード"
            providerName="System.Data.SqlClient" />
            <add name="Xls" connectionString="provider=Microsoft.Jet.OLEDB.4.0; data source=エクセルファイルのパス; Extended Properties='Excel 8.0;HDR=YES;'"
            providerName="System.Data.OleDb" />
        </connectionStrings>

     

    2006年11月8日 9:36
  • OLEDBを使用されたのですね。ご教示、ありがとうございました。
    2006年11月8日 9:41
    モデレータ