asp.net如何将excel导入到access数据库?

ylm424 2012-03-26 08:11:59
我手上有个导入代码,如果单独存放能正常导入,若放到一个asp.net网站里面就提示“未将对象引用设置到对象的实例”,烦求大侠解?
附代码:
前台(DateIn.aspx):<%@ Page Language="C#" Debug="true" AutoEventWireup="true" CodeFile="DataIn.aspx.cs" Inherits="DataIn" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<div>
  
模板下载 :<a href="/admin/sheet1.xls">请点击这里 </a>(请严格按照模板进行数据填充)</div>

<div style="z-index: 101; left: 16px; width: 629px; position: absolute; top: 75px;
height: 42px; right: 516px;">
<table>
<tr>
<td style="width: 101px">
<asp:Label ID="Label1" runat="server" Text="请选择需要导入的excel文件" Width="202px"></asp:Label></td>
<td style="width: 100px">
<asp:FileUpload ID="FileUpload1" runat="server" BackColor="White" Height="23px"
Width="210px" /></td>
<td style="width: 254px">
<asp:Button ID="Button2" runat="server" OnClick="Button2_Click" Text="执行导入"
Height="24px" style="margin-left: 39px" Width="80px" /></td>
</tr>
</table>
</div>
</form>
</body>
</html>

后台(DateIn.aspx.cs):using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.OleDb;

public partial class DataIn : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

}
protected void Button2_Click(object sender, EventArgs e)
{
string FileName = string.Empty;
string strpath = this.FileUpload1.PostedFile.FileName;

string str = "Provider=Microsoft.Jet.OleDB.4.0;Data Source=" + Server.MapPath("database/0451skyEvaluation.mdb");
OleDbConnection conn = new OleDbConnection(str);
conn.Open();
OleDbCommand cmd = new OleDbCommand("insert into SkyEvaluationSum (userid,username,dateid,datename,departmentid,departmentname,officesid,officesname,roleid,rolename,evalue,sumscore,sumcount,CreateDate,IP,UpdateDate,UTime) SELECT userid,username,dateid,datename,departmentid,departmentname,officesid,officesname,roleid,rolename,evalue,sumscore,sumcount,CreateDate,IP,UpdateDate,UTime FROM [Excel 5.0;HDR=YES;DATABASE=" + strpath + "].[sheet1$]", conn);
cmd.ExecuteNonQuery();
Page.RegisterStartupScript("", "<script>alert('数据导入成功');</script>");

}

}
...全文
247 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zpupol 2014-11-16
  • 打赏
  • 举报
回复
你数据库的路径跟你sql中的一样吗???
zhangsuyunpk521 2012-03-27
  • 打赏
  • 举报
回复
我觉得有可能是2个问题
1.就像1楼说的那样
2. string str = "Provider=Microsoft.Jet.OleDB.4.0;Data Source=" + Server.MapPath("database/0451skyEvaluation.mdb");我记得好像access的链接字符的路径不是这样写的,你断点调试一下,看看你的这里执行之后的路径是否正确~~
ylm424 2012-03-27
  • 打赏
  • 举报
回复
急求一个asp.net网站发布后 excel表中的信息导入access数据库的实例
ylm424 2012-03-26
  • 打赏
  • 举报
回复
还是提示一样的错误,我是在本地进行的测试,该代码单独存放在一个虚拟目录能正常上传,放在本地网站就不行(但本地网站是正常运行的),见鬼了,截图如下:
孟子E章 2012-03-26
  • 打赏
  • 举报
回复
string strpath = this.FileUpload1.PostedFile.FileName;
你这是客户端的路径的啊,服务器上是没有的,你必须

string strpath = Server.MapPath("~/" + Path.GetFileName(this.FileUpload1.PostedFile.FileName));
FileUpload1.SaveAs(strpath);

62,268

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧