做EXCEL导入的时候出现问题.

Msconfig_001 2009-06-22 11:41:58
            Dim mystring As String = "Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source =" & Me.path.PostedFile.FileName & ";Extended Properties=Excel 8.0"
Dim cnnxls As New OleDbConnection(mystring)
Dim myDa As New OleDbDataAdapter("select * from [Sheet1$]", cnnxls)
Dim myDs As New DataSet
myDa.Fill(myDs)
If myDs.Tables(0).Rows.Count > 0 Then
Dim i As Integer = 0
Dim totalnum As Integer = 0
For i = 1 To myDs.Tables(0).Rows.Count
Dim con As String = "Password=bushuo;Persist Security Info=false;User ID=sa;Initial Catalog=qj;Data Source=localhost"
Dim conn As New Data.SqlClient.SqlConnection(con)
conn.Open()
Dim epeopleno As String = myDs.Tables(0).Rows(i).ItemArray(0)
Dim epeoplename As String = myDs.Tables(0).Rows(i).ItemArray(1)
Dim job As String = myDs.Tables(0).Rows(i).ItemArray(2)
Dim strSql = ("insert into pay(peopleno,peoplename,job) values (epeopleno,epeopelname,job)")
Try
Dim myCmd As New SqlCommand(strSql, conn)
myCmd.ExecuteNonQuery()
totalnum = totalnum + 1
Dim stra As String = "数据导入成功." + totalnum + " 条"
co.Alert(Page, "stra")
Catch ex As Exception
Response.Write("<script language=javascript>alert('数据导入失败.');</script>")
End Try
Next i
End If



提示错误:Dim epeopleno As String = myDs.Tables(0).Rows(i).ItemArray(0)
System.IndexOutOfRangeException: 在位置 4 处没有任何行。

实在不明白啊!!!
...全文
105 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
沐NeMo 2009-06-23
  • 打赏
  • 举报
回复
漏了: Response.Write 也要去掉啊。
沐NeMo 2009-06-23
  • 打赏
  • 举报
回复
有可能是:co.Alert(Page, stra)这一行有问题啊。你把try去掉。看看哪里,那一句出错了。
For i = 1 To myDs.Tables(0).Rows.Count-1
epeopleno= myDs.Tables(0).Rows(i).Item(0)
epeoplename= myDs.Tables(0).Rows(i).Item(1)
job= myDs.Tables(0).Rows(i).Item(2)
strSql = ("insert into pay(peopleno,peoplename,job) values (" & epeopleno & ",'" & epeopelname & "','" & job & "')")
'Try
Dim myCmd As New SqlCommand(strSql, conn)
myCmd.ExecuteNonQuery()
totalnum = totalnum + 1
stra = "数据导入成功." + totalnum + " 条"
co.Alert(Page, stra)
'Catch ex As Exception
Response.Write("<script language=javascript>alert('数据导入失败.');</script>")
'End Try
Next
Msconfig_001 2009-06-22
  • 打赏
  • 举报
回复
断点提示错误是:列“epeopleno”不属于表 Table。
Msconfig_001 2009-06-22
  • 打赏
  • 举报
回复
改了.然后现在直接提示导出失败!!!!
CloneCenter 2009-06-22
  • 打赏
  • 举报
回复
另外,那个 IF 判断也是不需要的,如果 Rows.Count 为 0, 则循环也不会被执行。
CloneCenter 2009-06-22
  • 打赏
  • 举报
回复
这里修改下:

For i = 1 To myDs.Tables(0).Rows.Count

改为:

For i = 1 To myDs.Tables(0).Rows.Count - 1
Msconfig_001 2009-06-22
  • 打赏
  • 举报
回复
多谢!!
Msconfig_001 2009-06-22
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 linjimu 的回复:]
VB.NET codeDim mystring As String = "Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source =" & Me.path.PostedFile.FileName & ";Extended Properties=Excel 8.0"
Dim cnnxls As New OleDbConnection(mystring)
Dim myDa As New OleDbDataAdapter("select * from [Sheet1$]", cnnxls)
[/Quote]

导入成功.数据库里都有数据.
为什么还会提示导入失败呢???

奇怪.百思不得其解!!!
沐NeMo 2009-06-22
  • 打赏
  • 举报
回复
Dim mystring As String = "Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source =" & Me.path.PostedFile.FileName & ";Extended Properties=Excel 8.0"
Dim cnnxls As New OleDbConnection(mystring)
Dim myDa As New OleDbDataAdapter("select * from [Sheet1$]", cnnxls)
Dim myDs As New DataSet
myDa.Fill(myDs)
If myDs.Tables(0).Rows.Count > 0 Then
Dim i As Integer = 0
Dim totalnum As Integer = 0
Dim con As String = "Password=bushuo;Persist Security Info=false;User ID=sa;Initial Catalog=qj;Data Source=localhost"
Dim conn As New Data.SqlClient.SqlConnection(con)
conn.Open()
Dim epeopleno As String
Dim epeoplename As String
Dim job As String
Dim strSql As String
Dim stra As String
For i = 1 To myDs.Tables(0).Rows.Count-1
epeopleno= myDs.Tables(0).Rows(i).Item(0)
epeoplename= myDs.Tables(0).Rows(i).Item(1)
job= myDs.Tables(0).Rows(i).Item(2)
strSql = ("insert into pay(peopleno,peoplename,job) values (" & epeopleno & ",'" & epeopelname & "','" & job & "')")
Try
Dim myCmd As New SqlCommand(strSql, conn)
myCmd.ExecuteNonQuery()
totalnum = totalnum + 1
stra = "数据导入成功." + totalnum + " 条"
co.Alert(Page, stra)
Catch ex As Exception
Response.Write("<script language=javascript>alert('数据导入失败.');</script>")
End Try
Next i
conn.close()
End If
cnnxls.close()
wsxwsx123456789 2009-06-22
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 Msconfig_001 的回复:]
断点提示错误是:列“epeopleno”不属于表 Table。
[/Quote]

问题出在此处:
Dim strSql = ("insert into pay(peopleno,peoplename,job) values (epeopleno,epeopelname,job)")

改为:
Dim strSql = ("insert into pay(peopleno,peoplename,job) values (" & epeopleno & "," & epeopelname & "," & job & ")")
Msconfig_001 2009-06-22
  • 打赏
  • 举报
回复
帮忙看看什么原因.多谢!!!

16,721

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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