使用FileUpload获取文件名后,不能对文件进行读取(注释部分运行不成功)

qq_31812171 2017-05-04 09:34:07
protected void Button1_Click(object sender, EventArgs e)
{
GridView1.DataSource = GetExcelTableByOleDB(@"C:\Users\Administrator\Desktop\导入\ma.xlsx");
GridView1.DataBind();
//if (FileUpload1.HasFile)//FileUpload1选择C:\Users\Administrator\Desktop\导入\ma.xlsx的文件
//{
// string fileName = Server.HtmlEncode(FileUpload1.FileName);
// string extension = System.IO.Path.GetExtension(fileName);
// if ((extension == ".xlsx") || (extension == ".xls"))
// {
// GridView1.DataSource = GetExcelTableByOleDB(@"C:\Users\Administrator\Desktop\导入\ma.xlsx");
// GridView1.DataBind();
// }
//}

}

private DataTable GetExcelTableByOleDB(string path)
{
try
{
DataTable dtExcel = new DataTable();
DataSet dst = new DataSet();

string strExtension = System.IO.Path.GetExtension(path);//获取文件后缀名.xlsx
string strFileName = System.IO.Path.GetFileName(path);//获取文件扩展名test.xlsx

//Excel的连接
OleDbConnection objConn = null;
switch (strExtension)
{
case ".xls":
objConn = new OleDbConnection
("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
+ path + ";" +
"Extended Properties=\"Excel 8.0;HDR=YES;IMEX=1;\"");

break;
case ".xlsx":
objConn = new OleDbConnection
("Provider=Microsoft.ACE.OLEDB.12.0;Data Source="
+ path + ";" +
"Extended Properties=\"Excel 12.0;HDR=YES;IMEX=1;\"");
break;
default:
objConn = null;
break;
}
if (objConn == null)
{
return null;
}
objConn.Open();
//获取Excel中所有Sheet表的信息
DataTable schemaTable = objConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
//获取Excel的第一个Sheet表名
string tableName = schemaTable.Rows[0][2].ToString().Trim();
string strSql = "select * from [" + tableName + "]";
//获取Excel指定Sheet表中的信息
OleDbCommand objCmd = new OleDbCommand(strSql, objConn);
OleDbDataAdapter myData = new OleDbDataAdapter(strSql, objConn);
myData.Fill(dst, tableName);//填充数据
objConn.Close();
//dtExcel即为excel文件中指定表中存储的信息
dtExcel = dst.Tables[tableName];
return dtExcel;
}
catch
{

return null;
}

}
...全文
242 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 4 楼 qq_31812171 的回复:
除了fileupload,我不知道怎么选择获取文件路径
你还是不懂b/s是什么。。那是在你电脑测试,要是其他用户访问你的网站,别人路径如果是f:\xxx.xls,而C#代码是服务器端电脑运行的,你服务器有没有f这个盘还是一回事,所以你获取客户端全路径没什么意义,你只需要获取到浏览器提交的Excel文件2进制流,保存到你服务器后再用oledb连接你保存的这个文件来读取
qq_31812171 2017-05-04
  • 打赏
  • 举报
回复
引用 2 楼 showbo 的回复:
你是b/s系统?如果是安全问题获取不到客户端文件全路径的,解析都是服务器端来做,客户端js来做除非你用ie,否则兼容性比较差读取Excel文件数据 你需要保存到服务器后再读取,OleDbConnection不能直接操作HttpPostedFile对象
fileUpload选择了原文件,整个原文件都是HttpPostedFile对象?能取到文件名就把fileupload取消吗?
qq_31812171 2017-05-04
  • 打赏
  • 举报
回复
除了fileupload,我不知道怎么选择获取文件路径
qq_31812171 2017-05-04
  • 打赏
  • 举报
回复
我有个js可以使FileUpload直接获取路径名,这不是问题。问题是目标文件被fileupload操作后,不能重新进行excel读取(如被注释的代码)。如果只进行excel读取是可以成功的。
  • 打赏
  • 举报
回复
你是b/s系统?如果是安全问题获取不到客户端文件全路径的,解析都是服务器端来做,客户端js来做除非你用ie,否则兼容性比较差读取Excel文件数据 你需要保存到服务器后再读取,OleDbConnection不能直接操作HttpPostedFile对象
qq_31812171 2017-05-04
  • 打赏
  • 举报
回复
第一次发帖,自己顶一下。网上有说把excel传到服务器再进行读取,这样不会加重服务器的负担么?我只想要个路径而已
qq_31812171 2017-05-04
  • 打赏
  • 举报
回复
结贴结错楼层了,应该没关系吧,都是同一个人
内容概要:本文围绕“面向高精度电流控制的PMSM多参数PSO辨识模型研究”,系统阐述了基于Simulink的永磁同步电机(PMSM)多参数辨识方法,重点采用粒子群优化算法(PSO)实现对电机关键内部参数的高精度辨识。研究构建了完整的PMSM控制系统仿真模型,结合智能优化算法,解决了传统参数辨识中精度低、收敛慢的问题,有效提升了电流环控制的动态性能与稳态精度。该方法特别适用于对控制精度和响应速度要求较高的工业应用场景,如高性能伺服系统、电动汽车驱动系统等,具有较强的工程实用价值和科研参考意义。文中提供了完整的Simulink仿真模型与配套代码,确保了研究内容的可复现性和实践操作性。; 适合人群:具备电机控制、自动化或电气工程等相关专业背景,熟悉MATLAB/Simulink仿真环境,从事电机驱动系统研发、控制算法设计或相关领域科研工作的工程师及研究生,尤其适合工作1-5年、希望深入理解先进参数辨识技术的研发人员。; 使用场景及目标:①开展高精度PMSM控制系统的设计与参数辨识研究;②学习并掌握PSO等智能优化算法在电机系统参数辨识中的具体实现与调优技巧;③完成学术论文复现、科研项目验证、毕业设计或工程原型开发,提升对现代电机控制核心技术的理解与应用能力。; 阅读建议:建议读者结合提供的Simulink模型与源代码进行动手实践,按照文档逻辑逐步搭建与调试仿真系统,重点关注PSO算法与电机模型的交互机制、目标函数设计及参数收敛过程,通过对比不同工况下的辨识结果,深入理解算法性能与控制精度之间的内在联系。

28,403

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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