У меня есть функция, которая вызывает хранимую процедуру. Мне нужно сравнить результат с входным параметром. Я продолжаю получать предупреждение о том, что функция не возвращается на всех кодах, но я не могу понять, где.Цитирование через SQLdatareader и сравнение значений строк
Итак, 2 вопроса: 1. Я прохожу через SqlDataReader
правильно или должен заполнить данные, полученные с помощью моих результатов чтения? 2. Где мне не хватает возвращаемого значения?
Код функции:
Function FZCheck(FZ As String) As Boolean
Dim constr As String = My.Settings.devTOD.ToString
Dim con As New SqlConnection(constr)
Dim cmd As New SqlCommand("spSelectFloodZones", con)
cmd.CommandType = CommandType.StoredProcedure
If con.State = ConnectionState.Closed Then
con.Open()
End If
Dim rdr As SqlDataReader
rdr = cmd.ExecuteReader
If rdr.HasRows Then
Do While rdr.Read
If String.Equals(rdr(0).ToString, FZ) = True Then
Return True
Else
Return False
End If
Loop
Else
Return False
End If
If con.State = ConnectionState.Open Then
con.Close()
End If
rdr.Close()
End Function
Хранится код прок: (очень простой)
ALTER PROCEDURE [dbo].[spSelectFloodZones]
AS
SET NOCOUNT ON
SET ROWCOUNT 0
-- ====================
-- Select flood zones
-- ====================
SELECT DISTINCT FloodZone
FROM TOD.dbo.FloodZones
Язык VB.NET, с помощью SQL Server 2012.
после rdr.Close() вам нужно вернуть логическое значение? – doza
Почему вы не передаете этот параметр хранимой процедуре и не меняете свой код с предложением WHERE? Вы избежите большого количества кода в части VB.NET – Steve
@doza Я не уверен, какой логический код мне нужно будет вернуть. – alybaba726