私は従来のASPからASP.NETに切り替える予定です。そして私は以前の方法で簡単にやっていたいくつかの基本的なことをするのにはいくつか問題があります。以下は、数行でスカラークエリを実行するために使用した便利なASP関数です。私はその後、パラメータの配列を設定し、関数にそれを渡すだろうSQLパラメータと疑問符
SELECT TOP 1 UserName FROM Members WHERE (Created>?) AND (AdminLevel=?);
:
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クエリを渡すために使用
MyArray = ARRAY("1-JAN-2012",1)
配列内のパラメータは、クエリ文字列内の疑問符を表示されている順序で置き換えます。
私はこの機能をC#で模倣しようとしていますが、パラメータを渡す必要がある部分に固執しています。これまでのところ、私は、このような代わりに疑問符の@Createdと@AdminLevelなどという名前のプレースホルダを使用する必要があり、その後、私はこのようなパラメータオブジェクトを設定する必要がポイントになった:
SqlParameter param = new SqlParameter();
param.ParameterName = "@AdminLevel";
param.Value = 1;
方法はありますパラメータ名を設定せずにパラメータを渡し、疑問符とそれらのパラメータがどこに行くのかを指定する順序を使用するだけです。
私はADO.Netは名前付きパラメータのみをサポートしていると信じています。申し訳ありません:) – dana
+1 '次のParamCount' - 私はそれをした唯一の狂人だと思った! ; o) – Paul