现在在本地把一个Excel文件导入到远程数据库中,我现在的做法是先将这个文件利用System.Web.UI.HtmlControls.HtmlInputFile上传到服务器中,然后再打开文件导入到数据库中,现在我在自己的XP系统中调试可以上传文件,但是到server 2003的操作系统中却上传不了文件,老是报错!上传文件我就是直接在脚本里面写的,下面是整个aspx文件的代码!
<%@ Page language="c#" Codebehind="Input.aspx.cs" AutoEventWireup="false" Inherits="IFMIS.Instrument.InOutBill.Out.Input" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>Input</title>
<LINK href="../../../css/a.css" rel="stylesheet">
<script runat="server">
      void UploadBtn_Click(Object sender, EventArgs e)
      {
string str=Server.MapPath("/")+"OutbillTemp.xls";
InbillFile.PostedFile.SaveAs(str);
Server.Transfer("DetailInput.aspx");
      }
    void Checkbox1_Click(Object sender, EventArgs e)
{
Server.Transfer("Add.aspx");
} </script>
<meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
<meta content="C#" name="CODE_LANGUAGE">
<meta content="JavaScript" name="vs_defaultClientScript">
<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
</HEAD>
<body>
<FORM id="Form1" method="post" encType="multipart/form-data" runat="server">
<TABLE id="Table1" style="BORDER-RIGHT: #cccccc 1px; BORDER-TOP: #cccccc 1px; BORDER-LEFT: #cccccc 1px; WIDTH: 537px; BORDER-BOTTOM: #cccccc 1px; BORDER-COLLAPSE: collapse; HEIGHT: 152px; BACKGROUND-COLOR: white"
borderColor="#cccccc" height="152" cellSpacing="0" cellPadding="2" rules="all" border="1">
<TR>
<TD style="HEIGHT: 20px" bgColor="skyblue" colSpan="4">
<P align="center"><STRONG><FONT size="2">出库单导入</FONT></STRONG></P>
</TD>
</TR> <!--    
  <TR>
    <TD width=93><FONT face=宋体>&nbsp;</TD>
    <TD width=91>状态</TD>
    <TD width=219><asp:dropdownlist id=DDLStatus runat="server" Width="160px"></asp:DropDownList></TD>
    <TD><FONT face=宋体>&nbsp;</TD></TR>
-->
<TR>
<TD style="WIDTH: 51px; HEIGHT: 52px" width="51"><FONT size="2">&nbsp;</FONT></TD>
<TD style="WIDTH: 117px; HEIGHT: 52px" width="117"><FONT size="2">对应Excel文件:</FONT></TD>
<TD style="WIDTH: 390px; HEIGHT: 52px" width="390"><FONT size="2"><INPUT id="InbillFile" type="file" name="InbillFile" runat="server"></FONT></TD>
<TD style="HEIGHT: 52px"><FONT size="2">&nbsp;</FONT></TD>
</TR>
<TR>
<TD style="WIDTH: 51px; HEIGHT: 1px" width="51"><FONT size="2">&nbsp;</FONT></TD>
<TD style="WIDTH: 117px; HEIGHT: 1px" width="117"><FONT size="2">&nbsp;</FONT></TD>
<TD style="WIDTH: 390px; HEIGHT: 1px" width="390"><FONT size="2">&nbsp;&nbsp; <INPUT id="Submit1" style="WIDTH: 104px; HEIGHT: 24px" type="submit" value="确 定" name="Submit1"
runat="server" OnServerclick="UploadBtn_Click"></FONT></TD>
<TD style="HEIGHT: 1px"><FONT size="2">&nbsp;</FONT></TD>
</TR>
</TABLE>
<FONT size="2">&nbsp; </FONT>
</FORM>
</body>
</HTML>在两个系统中打开Excel文件总是报“未知名错误!”,下面是打开文件将Excel中的记录到成数据集的代码!
public DataSet InbillInput(string filename)
{
   try
  {
       string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +"Data Source="+ filename +";"+"Extended Properties=Excel 8.0;";
OleDbConnection conn = new OleDbConnection(strConn); 
conn.Open(); 
string strExcel = ""; 
OleDbDataAdapter myCommand = null; 
DataSet ds = null; 
strExcel="select * from [sheet1$]"; 
myCommand = new OleDbDataAdapter(strExcel, strConn); 
ds = new DataSet(); 
myCommand.Fill(ds,"table1");
conn.Close();
return ds;
    }
    catch(System.Exception e)
    {
return null;
    }
}