早上好,
我使用oracle作为db将vb迁移到c#app,当我在"添加"中添加第三个参数时,我得到以下问题。方法
我在vb中这样做:这里工作正常
Public Function Tamanio() As Integer
Dim IntTamanio As Integer = 0
Select Case IntTipo
Case OracleType.DateTime Or OracleType.Double Or _
OracleType.Float Or OracleType.Int16 Or _
OracleType.Int32 Or OracleType.Number : IntTamanio = 0
Case Else : IntTamanio = StrValor.Length
End Select
Return IntTamanio
End Function
Private Sub CrearParametros(ByVal PSqlCmd As OracleCommand, ByVal Parametros As List(Of TParametro))
Try
For Each Parametro As TParametro In Parametros
PSqlCmd.Parameters.Add(Parametro.Nombre, Parametro.TipoDato, Parametro.Tamanio).Value = Parametro.Valor
PSqlCmd.CreateParameter()
Next
PSqlCmd.Parameters.Add("PCodigo", OracleType.Int16, 0, 1).Direction = ParameterDirection.Output
PSqlCmd.CreateParameter()
PSqlCmd.Parameters.Add("PMensaje", OracleType.VarChar, 250, Nothing).Direction = ParameterDirection.Output
PSqlCmd.CreateParameter()
PSqlCmd.Parameters.Add("PRs", OracleType.Cursor, 0, Nothing).Direction = ParameterDirection.Output
PSqlCmd.CreateParameter()
Catch ex As Exception
Throw ex
End Try
End Sub
但是当我在C#中做同样的事情时:这是我得到错误的地方
public int Tamanio()
{
int IntTamanio = 0;
switch (IntTipo)
{
case OracleType.DateTime | OracleType.Double | OracleType.Float | OracleType.Int16 | OracleType.Int32 | OracleType.Number:
IntTamanio = 0;
break;
default:
IntTamanio = StrValor.Length;
break;
}
return IntTamanio;
}
private void CrearParametros(OracleCommand PSqlCmd, List<TParametro> Parametros)
{
try
{
foreach (TParametro Parametro in Parametros)
{
PSqlCmd.Parameters.Add(Parametro.Nombre,Parametro.TipoDato, Parametro.Tamanio).Value = Parametro.Valor;
PSqlCmd.CreateParameter();
}
PSqlCmd.Parameters.Add("PCodigo", OracleType.Int16, 0, null).Direction = System.Data.ParameterDirection.Output;
PSqlCmd.CreateParameter();
PSqlCmd.Parameters.Add("PMensaje", OracleType.VarChar, 250, null).Direction = System.Data.ParameterDirection.Output;
PSqlCmd.CreateParameter();
PSqlCmd.Parameters.Add("PRs", OracleType.Cursor, 0, null).Direction = System.Data.ParameterDirection.Output;
PSqlCmd.CreateParameter();
}
catch (Exception ex)
{
throw ex;
}
}
错误说明:
超载的最佳巧合&#34; System.Data.OracleClient.OracleParameterCollection.Add(字符串,System.Data.OracleClient的,INT)&#34; 几乎没有无效的论点。
有谁知道可能会发生什么?
提前致谢,