Параметры SQL и вопросительные знаки

Я переключаюсь с классического ASP на ASP.NET. И у меня проблемы с выполнением некоторых базовых вещей, которые я раньше легко делал с помощью старого метода. Ниже представлена ​​удобная функция ASP, которую я использовал для выполнения скалярных запросов с несколькими строками.

FUNCTION ExecuteScalarParams(SQLQuery, Parameter_Array)
Set cmd1 = Server.CreateObject("ADODB.Command") 
cmd1.ActiveConnection = con 
cmd1.CommandText = SQLQuery 
cmd1.CommandType = 1 

FOR ParamCount = 0 TO UBOUND(Parameter_Array)
    cmd1.Parameters(ParamCount) = Parameter_Array(ParamCount)
NEXT 'ParamCount

Set rstScalar = cmd1.Execute()

IF NOT rstScalar.EOF THEN
    arrScalar = rstScalar.GetRows()
    IF UBOUND(arrScalar,2) = 0 THEN
        ExecuteScalarParams = arrScalar(0,0)
    ELSE
        ExecuteScalarParams = NULL
    END IF
ELSE
    ExecuteScalarParams = NULL
END IF

rstScalar.Close
Set rstScalar = Nothing
Set cmd1 = Nothing
END FUNCTION

Раньше я передавал SQL-запрос с вопросительными знаками в качестве заполнителей для таких параметров:

SELECT TOP 1 UserName FROM Members WHERE (Created>?) AND (AdminLevel=?);

Затем я бы настроил массив параметров и передал его функции:

MyArray = ARRAY("1-JAN-2012",1)

Параметры в массиве будут замените вопросительные знаки в строке запроса в порядке их появления.

Я пытаюсь имитировать эту функцию в C #, но я застрял в той части, где мне нужно передать параметры. До сих пор я дошел до того момента, когда мне пришлось использовать именованные заполнители, такие как @Created и @AdminLevel, вместо вопросительных знаков, а затем мне нужно настроить объекты параметров следующим образом:

SqlParameter param = new SqlParameter();
param.ParameterName = "@AdminLevel";
param.Value = 1;

Есть ли способ передать параметры без необходимости указывать имена параметров и просто использовать вопросительные знаки и порядок, в котором они появляются, чтобы указать, какой параметр куда идет?

7
задан Yahia 4 February 2012 в 15:01
поделиться