ここでは、SQLテーブルにデータを追加するExcelsheetをアップロードしています。コードはローカルホストで完全に機能します。サーバーでホストした後、エラーが発生 し、パス'D:\ INETPUB \ VHOSTS \ vivek-vichar.org .... \ temp \ excelsheets \StudentRegistrationTrial2.xls'へのアクセスが拒否されました。
temp\excelsheetsディレクトリをすでに作成しました。
protected void import_xls_Click(object sender, EventArgs e)
{
try
{
string savePath;
savePath = Server.MapPath("/temp/excelsheets");
if (xlsupload.HasFile)
{
string fileName = xlsupload.FileName;
savePath = Path.Combine(savePath, fileName);
xlsupload.SaveAs(savePath);
string excelConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + savePath + ";Extended Properties='Excel 8.0;HDR=YES;IMEX=1'";
OleDbConnection excelConnection = new OleDbConnection(excelConnectionString);
excelConnection.Open();
OleDbCommand cmd = new OleDbCommand("select * from [Sheet2$]", excelConnection);
OleDbDataReader dReader = cmd.ExecuteReader();
SqlBulkCopy sqlBulk = new SqlBulkCopy(SqlConnectionstring.mainConnectionString, SqlBulkCopyOptions.KeepIdentity);
if(grouplist.SelectedItem.Text == "A")
{
sqlBulk.DestinationTableName = "dbo.studentA";
}
else if (grouplist.SelectedItem.Text == "B")
{
sqlBulk.DestinationTableName = "dbo.studentB";
}
else if (grouplist.SelectedItem.Text == "C")
{
sqlBulk.DestinationTableName = "dbo.studentC";
}
sqlBulk.ColumnMappings.Add("UserName", "UserName");
sqlBulk.ColumnMappings.Add("Password", "Password");
sqlBulk.ColumnMappings.Add("Name", "Name");
sqlBulk.ColumnMappings.Add("Standard", "Standard");
sqlBulk.ColumnMappings.Add("Division", "Division");
sqlBulk.ColumnMappings.Add("SchoolName", "SchoolName");
sqlBulk.ColumnMappings.Add("Language", "Language");
sqlBulk.WriteToServer(dReader);
lblmsg.Visible = true;
lblmsg.Text = "Your data uploaded successfully";
excelConnection.Close();
}
}
catch (Exception ex)
{
lblmsg.Visible = true;
lblmsg.Text = ex.Message.ToString();
}
Webconfig
<connectionStrings>
<add name="sqlconn" connectionString="Data Source=<servername>;User Id=******;Password=******;persist security info=False;Connect Timeout=0;Max Pool Size=10000" providerName="System.Data.SqlCient" />