0
我有一个将文件内容插入Oracle DB的子文件。 对于只有一个文件,一切都很好,但对于多个文件,过程的参数保留旧的值,但也是新的值;所以而不是4个参数,在第二个文件我有8个参数。VB.NET - 清除传递给Oracle存储过程的参数
下面是代码的示例:通过“文件”文件夹
For Each oFile As String In Directory.GetFiles("D:\files")
Dim header() As String = IO.File.ReadAllLines(oFile)
If header(0) = "<delivery_note>" Then
XML_File = XmlReader.Create(oFile, New XmlReaderSettings())
DataSet.ReadXml(XML_File)
For i As Integer = 0 To DataSet.Tables(0).Rows.Count - 1
cmd.Parameters.Add("p_delnote_id", OracleDbType.Int64).Direction = ParameterDirection.Input
cmd.Parameters("p_delnote_id").Value = Convert.ToInt32(DataSet.Tables(0).Rows(i).Item(0))
cmd.Parameters.Add("p_order_id", OracleDbType.Int64).Direction = ParameterDirection.Input
cmd.Parameters("p_order_id").Value = Convert.ToInt32(DataSet.Tables(0).Rows(i).Item(1))
cmd.Parameters.Add("p_product_id", OracleDbType.Int64).Direction = ParameterDirection.Input
cmd.Parameters("p_product_id").Value = Convert.ToInt32(DataSet.Tables(0).Rows(i).Item(2))
cmd.Parameters.Add("p_quantity", OracleDbType.Int64).Direction = ParameterDirection.Input
cmd.Parameters("p_quantity").Value = Convert.ToInt32(DataSet.Tables(0).Rows(i).Item(3))
cmd.Parameters.Add("p_confirm", OracleDbType.Int16).Direction = ParameterDirection.Output
cmd.CommandText = "pkg_erp.insert_delnote"
cmd.CommandType = CommandType.StoredProcedure
temp = cmd.ExecuteNonQuery()
result = cmd.Parameters("p_confirm").Value.ToString()
...
Next
End If
Next
在第一迭代时,它产生的4个参数,过程“insert_delnote”的列表。 在第二次迭代时,它会添加另外4个参数,而不是仅覆盖初始4个参数的值。
任何人都可以告诉我如何通过“文件”目录每次迭代只有4个参数?
谢谢