在c#中, string Path="C:\\Inetpub\\wwwroot\\upload\\file.xls";
string strconn="Provider=Microsoft.Jet.OLEDB.4.0;" +"Data Source="+ Path +";"+"Extended Properties=Excel 8.0;"; 
OleDbConnection myOleDbConnection=new OleDbConnection(strconn);
myOleDbConnection=new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" +"Data Source=+Path+";"+"Extended Properties=Excel 8.0;"");
string sqlstr="select * from [sheet1$] ";
OleDbCommand myOleDbCommand=new OleDbCommand(sqlstr,myOleDbConnection);
OleDbDataAdapter myData=new OleDbDataAdapter(myOleDbCommand);
myData.Fill(MyDataset);
DataGrid1.DataSource=MyDataset.Tables[0].DefaultView;
DataGrid1.DataBind();
为什么总提示"值不能为空。参数名: dataSet "

解决方案 »

  1.   

    在vb.net中用过,又没有问题
      

  2.   

    现在程序放在本机上是没有问题,但放在服务器上就不能正常运行.
    我知道是路径不对,但我的本意就是要求程序放在服务器上,而excel文件file.xls可以放在客户端的任意位置.
    当用户提交本机的file.xls文件所在的路径后,服务器能够访问file.xls文件内容.
      

  3.   

    肯定不行啊,读取的是服务器Path="C:\\Inetpub\\wwwroot\\upload\\file.xls",而不是客户端的,且实际上服务器上此路径并不存在。
    解决方案:
    1,先将客户端的文件做一次拷贝,拷贝到服务器上的某个特定的位置
    2,然后再读取就ok了
      

  4.   

    谢谢,
    用户需求就是要求程序放在服务器上,而excel文件file.xls可以放在客户端的任意位置.
    当用户提交本机的file.xls文件所在的路径后,服务器能够访问file.xls文件内容.
    而不需要从客户端拷贝到服务器上.
      

  5.   

    那就只能用 javascript了,服务器是无法访问客户的内容的。
      

  6.   

    新的问题又来了,如Path="C:\\Inetpub\\wwwroot\\upload\\file.xls"能够正常访问,现
    path=http://.../file.xls"
    其中http://../file.xls就是服务器上的一个文件,但运行有错,提示"无效的 internet 地址。"
    请问这个参数可以用internet 地址吗?