2014-12-01 1 views
1

Я пытаюсь создать суб, чтобы добавить столько параметров, сколько хочу, я использовал это в vb6, но здесь, в vb.net, он требует, чтобы я дал имя параметра (.add (@ параметр, значение)). Мне нужно найти способ, чтобы сделать это, не зная имя параметра, я использовал для отправки параметров с использованием порядка параметра в хранимой процедуре, вот код:добавление sqlparameter без имени

Public Sub EjecutarSP(ByVal SP As String, ByVal ParamArray Parametros() As Object) 
    Dim cnn As New SqlConnection(ConfigurationSettings.AppSettings("connString").ToString) 
    Dim cmd As New SqlCommand(SP, cnn) 
    Dim i As Integer 
    Dim Param As SqlParameter 
    Try 
     For i = 0 To UBound(Parametros) 
      Param = New SqlParameter("str", Parametros(i)) 
      cmd.Parameters.Add(Param) 
     Next 
     cmd.CommandTimeout = 0 
     cmd.CommandType = CommandType.StoredProcedure 
     If cmd.Connection.State <> ConnectionState.Open Then cmd.Connection.Open() 
     cmd.ExecuteNonQuery() 
     cmd = Nothing 
    Catch ex As Exception 
     Err.Raise(1000, "EjecutarSP", ex.Message) 
    End Try 
End Sub 

благодаря

ответ

0

AFAIK в SqlClient Безразлично «т поддержки безымянных параметров

From here:

безымянные, называемые также порядковый, параметры не поддерживаются поставщиком данных .NET Framework для SQL Server ,

Однако, вместо того, чтобы явно создавать параметры, вы можете получить параметры для Proc с помощью DeriveParameters, как только вы подключитесь.

Предполагая, что вы хотите вслепую доверять порядку параметров в соответствии с параметрами Proc, просто установите .Value из parameters at the given index.

Dim cmd As New SqlCommand(SP, cnn) 
... 
SqlCommandBuilder.DeriveParameters(cmd) 
For i = 0 To UBound(Parametros) 
    cmd.Parameters(i).Value = Parametros(i) 
Next 
0

Просто сбросить имя когда-то был добавлен параметр ничего (нуль), что-то вроде этого:

For i = 0 To UBound(Parametros) 
     Param = New SqlParameter("str", Parametros(i)) 
     cmd.Parameters.Add(Param) 
     Param.ParameterName = Nothing 
    Next 

 Смежные вопросы

  • Нет связанных вопросов^_^