4

Web アプリケーションで作業しています。Asp.net(VB.net) を使用して、アップロード後に Excel ファイルのデータ フィールド情報を SqlServer データベースに挿入する可能性があるかどうかを知りたいですか??

ありがとう

4

4 に答える 4

0
Imports System.Data.Common
Imports System.Data.SqlClient

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim fname As String
        Using ofd As New OpenFileDialog
            If ofd.ShowDialog = Windows.Forms.DialogResult.OK Then
                fname = ofd.FileName

            End If
        End Using

        Dim olecon As String = "Provider=Microsoft.ACE.OLEDB.12.0 ;Data Source=" & fname & ";Extended Properties=""Excel 12.0;IMEX=1;HDR=YES;"""

        Dim dBaseConnection As New System.Data.OleDb.OleDbConnection(olecon)

        dBaseConnection.Open()


        SSQL = "select  [LOT],[IMAGE],[STYLENO],[VENDOR] from [Sheet1$]"

        Dim cmd As New OleDbCommand(SSQL, dBaseConnection)

        Dim da As New OleDbDataAdapter(cmd)

        Dim ds As New DataSet

        da.Fill(ds)


        Using dr As DbDataReader = cmd.ExecuteReader

            If SHCONNECTION.State = ConnectionState.Closed Then
                Call SHconn(MCONNECTIONSTRING)
            End If

            Using bulkCopy As New SqlBulkCopy(MCONNECTIONSTRING)
                bulkCopy.DestinationTableName = "DBimage"
                bulkCopy.WriteToServer(ds)
            End Using
        End Using
    End Sub
End Class
于 2014-09-01T04:09:23.980 に答える
0

これを試して

public void export(string excelfilepath)
{

    string ssqltable = "tdatamigrationtable";

    string myexceldataquery = "select student,rollno,course from [sheet1$]";
    try
    {
        //create our connection strings
        string sexcelconnectionstring = @"provider=microsoft.jet.oledb.4.0;data source=" + excelfilepath +
        ";extended properties=" + "\"excel 8.0;hdr=yes;\"";
        string ssqlconnectionstring = "server=mydatabaseservername;user
        id=dbuserid;password=dbuserpassword;database=databasename;connection reset=false";

        //series of commands to bulk copy data from the excel file into our sql table
        oledbconnection oledbconn = new oledbconnection(sexcelconnectionstring);
        oledbcommand oledbcmd = new oledbcommand(myexceldataquery, oledbconn);
        oledbconn.open();
            oledbdatareader dr = oledbcmd.executereader();
            sqlbulkcopy bulkcopy = new sqlbulkcopy(ssqlconnectionstring);
            bulkcopy.destinationtablename = ssqltable;
            while (dr.read())
            {
                bulkcopy.writetoserver(dr);
            }

            oledbconn.close();
        }
        catch (exception ex)
        {
            //handle exception
        }
    }
于 2013-09-11T03:21:48.377 に答える
0

はい、可能です。考えられる基本的な手順の鳥瞰図は次のとおりです。

  1. アップロード後 - Excel ファイルを一時的に一意の名前で保存します
  2. アップロードされたファイルへのOLEDB接続を開く
  3. それを読み取ります (OleDbDataReader を介して - ファイルが巨大な場合は一度にメモリにロードする必要はありません。ファイルが小さい場合は DataTable にロードします)。
  4. クエリを実行し、ストアド プロシージャを実行して、取得したデータで SqlServer DB を更新します
  5. アップロードしたファイルを削除
于 2013-09-11T03:21:06.167 に答える