Vb.net 控制台应用程序-";过程或函数指定的参数太多;第二轮

Vb.net 控制台应用程序-";过程或函数指定的参数太多;第二轮,vb.net,console,Vb.net,Console,我已经编写了一个控制台应用程序来处理、读取和排序输入文件夹中的jpeg图像。该应用程序使用第三方dll读取交付证明文件上的条形码,然后给出相关文件名,复制文件并将所述文件的路径上载到SQL数据库。对于单个文件,一切都正常,但一旦目录中有多个文件并第二次调用insert过程,就会出现错误“过程或函数指定的参数太多”。我将参数输出到控制台,看不到任何问题,但命令在执行时失败。知道这里发生了什么吗。谢谢史蒂夫 For Each File As String In Files FileN

我已经编写了一个控制台应用程序来处理、读取和排序输入文件夹中的jpeg图像。该应用程序使用第三方dll读取交付证明文件上的条形码,然后给出相关文件名,复制文件并将所述文件的路径上载到SQL数据库。对于单个文件,一切都正常,但一旦目录中有多个文件并第二次调用insert过程,就会出现错误“过程或函数指定的参数太多”。我将参数输出到控制台,看不到任何问题,但命令在执行时失败。知道这里发生了什么吗。谢谢史蒂夫

For Each File As String In Files
        FileName = System.IO.Path.GetFileName(File)
        SourceFile = System.IO.Path.Combine(SourcePath, FileName)
        Console.WriteLine("Got File " + SourceFile)
        Results = Reader.DecodeFile(SourceFile)
        If Not Results Is Nothing Then
            For Each item As BarcodeResult In Results
                StrInfo = item.BarcodeText
            Next
            DestFileName = StrInfo & Format(Now, "ddMMyyyy-hhmmss") & ".jpg"
            DestFile = System.IO.Path.Combine(SuccessPath, DestFileName)
            'System.IO.File.Copy(File, DestFile, True)
            Console.WriteLine("File " & DestFile & " Created...")
            sqlCon.Open()
            sqlCmd.CommandType = CommandType.StoredProcedure
            sqlCmd.Parameters.Add("@Consignment_id", SqlDbType.Decimal)
            sqlCmd.Parameters("@Consignment_id").Direction = ParameterDirection.Input
            sqlCmd.Parameters("@Consignment_id").Value = StrInfo
            sqlCmd.Parameters.Add("@Path", SqlDbType.VarChar)
            sqlCmd.Parameters("@Path").Direction = ParameterDirection.Input
            sqlCmd.Parameters("@Path").Value = DestFile
            sqlCmd.Parameters.Add("@Doc", SqlDbType.VarChar)
            sqlCmd.Parameters("@Doc").Direction = ParameterDirection.Input
            sqlCmd.Parameters("@Doc").Value = "POD"
            sqlCmd.Parameters.Add("@UploadedBy", SqlDbType.VarChar)
            sqlCmd.Parameters("@UploadedBy").Direction = ParameterDirection.Input
            sqlCmd.Parameters("@UploadedBy").Value = "SYSTEM"
            Console.WriteLine(sqlCmd.Parameters("@Consignment_id").Value.ToString)
            Console.WriteLine(sqlCmd.Parameters("@Path").Value.ToString)
            Console.WriteLine(sqlCmd.Parameters("@Doc").Value.ToString)
            Console.WriteLine(sqlCmd.Parameters("@UploadedBy").Value.ToString)
            sqlCmd.ExecuteNonQuery()
            sqlCon.Close()
            Console.WriteLine(StrInfo & " Uploaded...")
            'System.IO.File.Delete(SourceFile)
            Threading.Thread.Sleep(1000)
        Else
            'DestFileName = FileName
            'DestFile = System.IO.Path.Combine(FailPath, DestFileName)
            'System.IO.File.Copy(File, DestFile, True)
            'System.IO.File.Delete(SourceFile)
            'Console.WriteLine("Failed, moved to 'Bad' folder...")
        End If
    Next
    Console.WriteLine("Finished, press any key to exit...")
    Console.ReadKey()

您不需要为每个文件添加参数,只需添加第一个参数即可。只需更改后续操作的
。感谢Putonix,这就成功了。将add参数行移到循环上方,现在可以工作了。