Web アプリケーションで作業しています。Asp.net(VB.net) を使用して、アップロード後に Excel ファイルのデータ フィールド情報を SqlServer データベースに挿入する可能性があるかどうかを知りたいですか??
ありがとう
Web アプリケーションで作業しています。Asp.net(VB.net) を使用して、アップロード後に Excel ファイルのデータ フィールド情報を SqlServer データベースに挿入する可能性があるかどうかを知りたいですか??
ありがとう
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
これを試して
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
}
}
はい、可能です。考えられる基本的な手順の鳥瞰図は次のとおりです。