我导入excel到数据库中怎么不行,各位帮我看看我的代码,问题出现在那里????? 提示我参数不对

时间:2023-02-03 11:53:16
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

        Dim fileName As String



        Dim conn As New OleDbConnection
        conn.ConnectionString = "Provider=SQLOleDb;Data Source=10.134.252.9;Initial Catalog=attendence;User ID=SA;Password="
        Dim strConn As New OleDbConnection
        strConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source='" & fileName & "';Extended Properties=Excel 8.0;"


        Me.OpenFileDialog1.Filter = "Excle文件(*.xls)|*.xls"
        If Me.OpenFileDialog1.ShowDialog() = DialogResult.OK Then
            fileName = Me.OpenFileDialog1.FileName
            Dim strsql As String = "insert shifinfo(EMPLOYEEID,EMPLOYEEID1,EMPLOYEENAME,DEPARTMENTNO,SETDATE,DETAILNO) SELECT * FROM [SHIFTINFO$]"
            Dim SqlCmd As New OleDbCommand
            SqlCmd.Connection = conn
            SqlCmd.Connection = strConn
            SqlCmd.CommandText = strsql
            Try
                conn.Open()
                strConn.Open()
                SqlCmd.ExecuteNonQuery()
                MessageBox.Show("数据倒入成功")
                Me.Bingub()
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            Finally
                conn.Close()
                strConn.Close()

            End Try


        End If
    End Sub

21 个解决方案

#1


你要说说现象的呀,什么地方出错了,抱什么样的错误

#2


无效的参数量

#3


执行的时候弹出提示框就是上面说的无效的参数量

#4


有没有人知道怎么回事呀

#5


SqlCmd.Connection = conn
            SqlCmd.Connection = strConn
检查一下这两个语句,能这样写吗?我可没试过。

#6


楼上的,楼主这两句语法上好像没什么问题吧
SqlCmd.Connection = conn
SqlCmd.Connection = strConn
SqlCmd.CommandText = strsql


SqlCmd.Connection已经被刷新。那还能执行你的SQL吗?

#7


我的意思就是这样啊,LZ原意是想用一个SQLCOM做两个链接,他那样写,就别刷新了啊。

#8


我的意思就是这样啊,LZ原意是想用一个SQLCOM做两个链接,他那样写,就给刷新了啊。

#9


建议楼主单步调试一下,看看在哪一行代码上面出错,

#10


Dim SqlCmd As New OleDbCommand
            SqlCmd.Connection = conn
            SqlCmd.Connection = strConn
            SqlCmd.CommandText = strsql
====================================================
这个conncetion怎么被重复的赋值

#11


[SHIFTINFO$] 从哪里来?,这样当然出错

#12


SHIFTINFO$] 从哪里来?你只是得到了Excle文件的路径,并没有做什么,这样当然出错

#13


我的思想是做两个连接,一个连接excel的[SHIFTINFO$],一个连接数据库的shiftinfo表,然后将excel的[SHIFTINFO$]表导入到sql数据库的shiftinfo表中,可能上面的方法不对,请各位指教!!

#14


conn.ConnectionString = "Provider=SQLOleDb;Data Source=10.134.252.9;Initial Catalog=attendence;User ID=SA;Password="

這句應該不對吧,password=後如果沒有密碼,應該加個''這個符號。

#15


你用的是Excel2000还是2003?

#16


2003

#17


1433 端口有没有打开

 Public conn As SqlConnection = New SqlConnection("Data Source=10.134.252.9,1433;Network Library=DBMSSOCN;Initial Catalog=attendence;user id=sa;password=")

sql server 2000 sp4补丁要打,否则连不上

#18


各位仔细看看代码,再回答

#19


我没有做过command连接二个Connection,如果这是可以的话,那么如下的SQL语句肯定是错误的,因为这里没有指明表说在的数据库,执行成功才是奇怪的。
insert shifinfo(EMPLOYEEID,EMPLOYEEID1,EMPLOYEENAME,DEPARTMENTNO,SETDATE,DETAILNO) SELECT * FROM [SHIFTINFO$]

#20


像这种情况,我也试过好的办法,但都没有成功,不知各位有没有好看方法实现

#21


我也觉得是SQL语句的问题
SELECT * into 表名 
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
  'Data Source="文件路径";Extended properties="Excel 8.0;HDR=No"')...[Sheet1$]

#1


你要说说现象的呀,什么地方出错了,抱什么样的错误

#2


无效的参数量

#3


执行的时候弹出提示框就是上面说的无效的参数量

#4


有没有人知道怎么回事呀

#5


SqlCmd.Connection = conn
            SqlCmd.Connection = strConn
检查一下这两个语句,能这样写吗?我可没试过。

#6


楼上的,楼主这两句语法上好像没什么问题吧
SqlCmd.Connection = conn
SqlCmd.Connection = strConn
SqlCmd.CommandText = strsql


SqlCmd.Connection已经被刷新。那还能执行你的SQL吗?

#7


我的意思就是这样啊,LZ原意是想用一个SQLCOM做两个链接,他那样写,就别刷新了啊。

#8


我的意思就是这样啊,LZ原意是想用一个SQLCOM做两个链接,他那样写,就给刷新了啊。

#9


建议楼主单步调试一下,看看在哪一行代码上面出错,

#10


Dim SqlCmd As New OleDbCommand
            SqlCmd.Connection = conn
            SqlCmd.Connection = strConn
            SqlCmd.CommandText = strsql
====================================================
这个conncetion怎么被重复的赋值

#11


[SHIFTINFO$] 从哪里来?,这样当然出错

#12


SHIFTINFO$] 从哪里来?你只是得到了Excle文件的路径,并没有做什么,这样当然出错

#13


我的思想是做两个连接,一个连接excel的[SHIFTINFO$],一个连接数据库的shiftinfo表,然后将excel的[SHIFTINFO$]表导入到sql数据库的shiftinfo表中,可能上面的方法不对,请各位指教!!

#14


conn.ConnectionString = "Provider=SQLOleDb;Data Source=10.134.252.9;Initial Catalog=attendence;User ID=SA;Password="

這句應該不對吧,password=後如果沒有密碼,應該加個''這個符號。

#15


你用的是Excel2000还是2003?

#16


2003

#17


1433 端口有没有打开

 Public conn As SqlConnection = New SqlConnection("Data Source=10.134.252.9,1433;Network Library=DBMSSOCN;Initial Catalog=attendence;user id=sa;password=")

sql server 2000 sp4补丁要打,否则连不上

#18


各位仔细看看代码,再回答

#19


我没有做过command连接二个Connection,如果这是可以的话,那么如下的SQL语句肯定是错误的,因为这里没有指明表说在的数据库,执行成功才是奇怪的。
insert shifinfo(EMPLOYEEID,EMPLOYEEID1,EMPLOYEENAME,DEPARTMENTNO,SETDATE,DETAILNO) SELECT * FROM [SHIFTINFO$]

#20


像这种情况,我也试过好的办法,但都没有成功,不知各位有没有好看方法实现

#21


我也觉得是SQL语句的问题
SELECT * into 表名 
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
  'Data Source="文件路径";Extended properties="Excel 8.0;HDR=No"')...[Sheet1$]