У меня есть класс, в котором есть много функций "New()", чтобы инициировать его с различными параметрами. Я хотел бы создать функцию New(), которая будет запускать класс без аргументов. Проблема в том, что существует функция fillData, которая заполняет данные для класса и использует хранимую процедуру для выполнения работы, но имеет параметр хранимой процедуры. Я не хочу создавать новую функцию fillData, но хотел бы использовать функцию fillData без дополнительной хранимой процедуры. Мой способ сделать это состоял в том, чтобы передать пустую переменную SqlParameter var функции fillData, но независимо от того, что я делаю, когда я проверяю параметр params на то, что он пуст, мне всегда кажется, что там что-то есть.
Я хотел бы проверить, пуст ли этот параметр «params»:
Public Sub New()
'just created this so i could pass something
'and continue using fillData as is.
Dim p(1) As SqlParameter
Dim db As sqldb.command
db = New sqldb.command(ConfigurationManager.ConnectionStrings("sqlConnectionString").ConnectionString)
fillData("r2m_getAllListingsSorted", p)
End Sub
...
Private Sub fillData(ByVal sp As String, ByVal params As SqlParameter())
Dim db As sqldb.command
Dim r As SqlDataReader
db = New sqldb.command(ConfigurationManager.ConnectionStrings("sqlConnectionString").ConnectionString)
'right here, im having the trouble, seems no matter how I try to "params",
'the code always defaults to db.executeReader(sp, p)
'I've tried params.Length = 0 and params.ToString = "" also.
If params.Value Then
r = db.executeReader(sp)
Else
r = db.executeReader(sp, params)
End If
Как мне изменить это, чтобы я мог продолжать использовать функцию fillData, не передавая ей параметр SqlParameter?
Благодарю вас!