Klasik ASP'den ASP.NET'e geçiş yapıyorum. Ve eski yöntemle kolayca yaptığım bazı temel şeyleri yapmakta sorun yaşıyorum. Aşağıda birkaç satır ile skaler sorguları yürütmek için kullanılan kullanışlı bir ASP işlevi. Sonra bir parametre dizisi kurmak ve işlevine geçerdiSQL Parametreleri ve Soru İşaretleri
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
böyle parametreler için yer tutucular olarak soru işaretleri ile bir SQL sorgusu geçirmek için kullanılan
Dizideki parametreler, sorgu dizesindeki soru işaretlerinin göründükleri sıraya göre yerine konacaktır.
Bu işlevi C# ile taklit etmeye çalışıyorum ama parametreleri geçmem gereken kısımda takılıyorum. Şimdiye kadar böyle yerine soru işaretleri @Created ve @AdminLevel olarak adlandırılan yer tutucuları kullanılan ve daha sonra böyle parametre nesneleri kurmak zorunda noktaya var:
SqlParameter param = new SqlParameter();
param.ParameterName = "@AdminLevel";
param.Value = 1;
bir yolu var mı Parametre isimlerini ayarlamak zorunda kalmadan parametreleri aktarmak ve sadece soru işaretlerini ve hangi parametrenin nereye gittiğini belirttikleri sıralamayı kullanmak yeterlidir?
ADO.Net'in yalnızca adlandırılmış parametreleri desteklediğine inanıyorum. Üzgünüz :) – dana
+1 'Sonraki' ParamCount' için - Ben bunu yapan tek deli olduğumu düşündüm! ; o) – Paul