新手求教:下面代码的目的:在数据库中查询出excel在网站中的路径,然后通过路径调用excel文件,
问题一:我不清楚Sever.MapPath的参数是不是支持变量?如果支持,我这个写法对不对?
问题而:我为了试验能否打开excel(饱含多个worksheet),我把Sever.MapPath部分改写为某个指定的路径:Sever.MapPath("../test/App_Data/海滨矿砂.xls"),但是执行后,在objAdapter1.Fill()处提示“Microsoft Jet 数据库引擎找不到对象'海滨砂矿产量'。请确定对象是否存在,并正确地写出它的名称和路径。”
String sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=" + Server.MapPath("+ excelFilePath +") + ";" +
"Extended Properties=Excel 8.0;";
OleDbConnection objConn = new OleDbConnection(sConnectionString);
objConn.Open();
//Response.Write("<script language=javascript>alert('成功找到excel!!')</script>");
OleDbCommand objCmdSelect = new OleDbCommand("SELECT * FROM "+ excelname +"", objConn);
OleDbDataAdapter objAdapter1 = new OleDbDataAdapter();
objAdapter1.SelectCommand = objCmdSelect;
DataSet objDataset1 = new DataSet();
objAdapter1.Fill(objDataset1, excelname);
GridView1.DataSource = objDataset1.Tables[0].DefaultView;
GridView1.DataBind();
objConn.Close();
问题一:我不清楚Sever.MapPath的参数是不是支持变量?如果支持,我这个写法对不对?
问题而:我为了试验能否打开excel(饱含多个worksheet),我把Sever.MapPath部分改写为某个指定的路径:Sever.MapPath("../test/App_Data/海滨矿砂.xls"),但是执行后,在objAdapter1.Fill()处提示“Microsoft Jet 数据库引擎找不到对象'海滨砂矿产量'。请确定对象是否存在,并正确地写出它的名称和路径。”
String sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=" + Server.MapPath("+ excelFilePath +") + ";" +
"Extended Properties=Excel 8.0;";
OleDbConnection objConn = new OleDbConnection(sConnectionString);
objConn.Open();
//Response.Write("<script language=javascript>alert('成功找到excel!!')</script>");
OleDbCommand objCmdSelect = new OleDbCommand("SELECT * FROM "+ excelname +"", objConn);
OleDbDataAdapter objAdapter1 = new OleDbDataAdapter();
objAdapter1.SelectCommand = objCmdSelect;
DataSet objDataset1 = new DataSet();
objAdapter1.Fill(objDataset1, excelname);
GridView1.DataSource = objDataset1.Tables[0].DefaultView;
GridView1.DataBind();
objConn.Close();
解决方案 »
- gridview没数据的时候怎么还让它显示表头
- SQL语句,IGNORE_DUP_KEY 提问
- 这个控件怎么样?IntelliGrid表格控件(Web Grid)V1.0 For Asp.Net2.0,3.5
- ASP.NET的初学问题-----运行出错
- 怎么样让一个按钮有背景图片,又能响应onclick事件?
- 求论坛屏蔽用户输入的非法字符的数据库
- 讨论:分析比较DOM,SAX和DataSet三种解析xml的优缺点和加以整合应用的方法?
- 我想每隔一天将SQL2000数据库中的dattime型数据更改为当天日期?如何实现?急!
- 大家都用什么图形控件(chart)了
- 时间格式转换??
- 看看这个xml怎么读?
- 能够直接在服务器端调用客户端的javaScript涵数吗?
我后来把MapPath内的参数改为:MapPath("~/App_Data/海滨砂矿.xls"),问题仍旧...
HELP!!
下面给出我的代码,希望对你有所帮助。
//......
string strFileName = FileUpload1.FileName;
string myPath = Server.MapPath("~/UploadFiles/"); //UploadFiles是上传到的文件夹目录
string ExcelPath = @"" + myPath + "" + strFileName +""; // 定义Excel文件的连接路径
string strconn = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source = "+ ExcelPath +"; "
+ " Extended Properties = 'Excel 8.0;HDR=NO;IMEX=1 '"; // 定义Excel的连接字符串
OleDbConnection Excelconn = new OleDbConnection(strconn); // 创建与Excel的连接
OleDbDataAdapter ExcelAdapter = new OleDbDataAdapter("SELECT * FROM [Sheet1$]",Excelconn); // 创建OleDbDataAdapter对象
DataSet ExcelDataSet = new DataSet(); // 创建DataSet对象
ExcelAdapter.Fill(ExcelDataSet,"Table"); // 填充数据
// ......
GridView1.DataSource = objDataset1.Tables["Table"].DefaultView;
GridView1.DataBind();
Excelconn.Close();
// ......
GridView1.DataSource = ExcelDataSet.Tables["Table"].DefaultView;
GridView1.DataBind();
Excelconn.Close();
// ......
excelname = excelname + ".xls";
string ExcelPath = @"" + myPath + "" + excelname + "";
string strconn = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source = " + ExcelPath + "; "
+ " Extended Properties = 'Excel 8.0;HDR=NO;IMEX=1 '"; OleDbConnection Excelconn = new OleDbConnection(strconn);
OleDbDataAdapter ExcelAdapter = new OleDbDataAdapter("SELECT * FROM [sheet1$]", Excelconn); // 创建OleDbDataAdapter对象
DataSet ExcelDataSet = new DataSet();
ExcelAdapter.Fill(ExcelDataSet,excelname);
GridView1.DataSource = ExcelDataSet.Tables[excelname].DefaultView;
GridView1.DataBind();
Excelconn.Close(); 以上是我按照你的方法稍微修改后的代码,经过验证,已经能够正确读取路径,但是,执行时,就出现上面的错误:“找不ISAM”。
估计是sql语句没有正确执行。
// 这里的"Table"是一个临时数据表对象的名称,你通过下面的方法来创建它是不对的:
这样读到的是一个文件实体,根本绑定不了Excel里面的数据啊。你按照我给你的代码重新做一遍吧,不需要再定义“excelname”这个东西了,即直接去掉
excelname = excelname + ".xls"; 下面我把代码完整写出来吧。
string strFileName = FileUpload1.FileName;
string myPath = Server.MapPath("~/UploadFiles/"); // UploadFiles是上传到的文件夹目录
string ExcelPath = @"" + myPath + "" + strFileName +""; // 定义Excel文件的连接路径
string strconn = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source = "+ ExcelPath +"; "
+ " Extended Properties = 'Excel 8.0;HDR=NO;IMEX=1 '"; // 定义Excel的连接字符串
OleDbConnection Excelconn = new OleDbConnection(strconn); // 创建与Excel的连接
OleDbDataAdapter ExcelAdapter = new OleDbDataAdapter("SELECT * FROM [Sheet1$]",Excelconn); // 创建OleDbDataAdapter对象
DataSet ExcelDataSet = new DataSet(); // 创建DataSet对象
ExcelAdapter.Fill(ExcelDataSet,"Table"); // 填充数据
GridView1.DataSource = ExcelDataSet.Tables["Table"].DefaultView;
GridView1.DataBind();
Excelconn.Close();
不好意思,关于这一句的作用我不太清楚...
不好意思,关于这一句的作用我不太清楚...===================================这一句读取已上传的文件的名称。FileUpload1 是上传控件的名称。