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