提取csv文件到DataSet的问题

sky0813 2020-03-25 05:16:00
有个fileupload和button
提取到dataset中。如果XXX是固定filename且文件提前放置是没有报错 Dim sql As String = "select * from XXX"
但如果动态的,用fileupload上传后提取此csv时就会报错。

''200325171608.csv'' 不是一个有效名称。请确认它不包含无效的字符或标点,且名称不太长。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Data.OleDb.OleDbException: ''200325171608.csv'' 不是一个有效名称。请确认它不包含无效的字符或标点,且名称不太长。


代码如下。

' ...........

Dim filename As String = Now.ToString("yyMMddHHmmss") + ".csv"
Dim savePath As String = Server.MapPath(("ExcelUp\") + filename)
FileUpload1.SaveAs(savePath)

Dim mp As String = Server.MapPath(("ExcelUp\"))
Dim strConn As String = String.Format("Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='text;HDR=Yes;FMT=Delimited;CharacterSet=65001';Data Source='" & mp & "'")

Dim conn As New OleDbConnection(strConn)
Dim dt1 As New DataTable()
Dim sql As String = "select * from '" & filename & "'"

conn.Open()
Dim dr As New OleDbDataAdapter(sql, conn)
Dim ds As New DataSet()
dr.Fill(ds, "table1")
dt1 = ds.Tables("table1")
If dt1.Rows.Count > 1 Then
GridView2.DataSource = dt1
GridView2.DataBind()
End If
...全文
217 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
by_封爱 2020-03-26
  • 打赏
  • 举报
回复
我都习惯

Dim mp As String=Server.MapPath("~/ExcelUp/"+filename);
这种形式.
sky0813 2020-03-26
  • 打赏
  • 举报
回复
已解决,是变量引用问题。(" + filename + ") 即可

62,066

社区成员

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

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

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

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