Updated Code
VB CODEBEHIND
Protected Sub cmdclick_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmdclick.Click
Dim strConnString As String = WebConfigurationManager.ConnectionStrings("orca").ConnectionString
Dim con As New SqlConnection(strConnString)
Dim cmd As New SqlCommand("usp_validatecard", con)
cmd.CommandType = Data.CommandType.StoredProcedure
Dim GetTrack1 As String = ""
Dim GetTrack2 As String = ""
Dim SplitTrack As String = txtTrack.Text
If SplitTrack.Length.ToString = 19 Then
GetTrack1 = Mid(SplitTrack, 2, 6)
GetTrack2 = Mid(SplitTrack, 10, 9)
cmd.Parameters.Add("@track1", Data.SqlDbType.NVarChar).Value = GetTrack1
cmd.Parameters.Add("@track2", Data.SqlDbType.NVarChar).Value = GetTrack2
Try
con.Open()
Dim Result As Integer = cmd.ExecuteNonQuery()
Dim reader As SqlDataReader = cmd.ExecuteReader()
If reader.Read() Then
lblmemname.Text = Convert.ToString(reader(0))
lblmemnum.Text = Convert.ToString(reader(1))
lbltrack1.Text = Convert.ToString(reader(2))
lbltrack2.Text = Convert.ToString(reader(3))
lblmessage.Text = Convert.ToString(reader(4))
End If
Catch ex As SqlException
errmessage.Text = "Error"
Finally
con.Close()
End Try
ElseIf SplitTrack.Length.ToString = 8 Then
GetTrack1 = Mid(SplitTrack, 2, 6)
cmd.Parameters.Add("@track1", Data.SqlDbType.NVarChar).Value = GetTrack1
Try
con.Open()
Dim Result As Integer = cmd.ExecuteNonQuery()
Dim reader As SqlDataReader = cmd.ExecuteReader()
If reader.Read() Then
lblmemname.Text = Convert.ToString(reader(0))
lblmemnum.Text = Convert.ToString(reader(1))
lbltrack1.Text = Convert.ToString(reader(2))
lbltrack2.Text = Convert.ToString(reader(3))
lblmessage.Text = Convert.ToString(reader(4))
End If
Catch ex As SqlException
errmessage.Text = "Error"
Finally
con.Close()
End Try
ElseIf SplitTrack.Length.ToString = 11 Then
GetTrack2 = Mid(SplitTrack, 2, 9)
cmd.Parameters.Add("@track2", Data.SqlDbType.NVarChar).Value = GetTrack2
Try
con.Open()
Dim Result As Integer = cmd.ExecuteNonQuery()
Dim reader As SqlDataReader = cmd.ExecuteReader()
If reader.Read() Then
lblmemname.Text = Convert.ToString(reader(0))
lblmemnum.Text = Convert.ToString(reader(1))
lbltrack1.Text = Convert.ToString(reader(2))
lbltrack2.Text = Convert.ToString(reader(3))
lblmessage.Text = Convert.ToString(reader(4))
End If
Catch ex As SqlException
errmessage.Text = "Error"
Finally
con.Close()
End Try
Else
lblmessage.Text = "Could Not Find Any Tracks"
End If
MSSQL STORED PROCEDURE
ALTER Procedure [dbo].[usp_validatecard](
@memnum nvarchar(50) = '-',
@memname nvarchar(50) = '-',
@track1 nvarchar(50) = '-',
@track2 nvarchar(50) = '-',
@msgtrack1 nvarchar(50) = 'Track 1 is Blank',
@msgtrack2 nvarchar(50) = 'Track 2 is Blank',
@message nvarchar(100)= '-')
As
--select @cardid = '%128255? ;282556587?'
--select @track1 = '128255'
--select @track2 = '282556587'
-- track1 good, track2 good
If exists(select * from dbo.clubmembers where FAMILYID = @track1 and (CLUBCARD1 = @track2 or CLUBCARD2 = @track2))
begin
select @memname = lastname + ', ' + firstname, @memnum = MEMBERSHIPID from dbo.clubmembers where FAMILYID = @track1 and (CLUBCARD1 = @track2 or CLUBCARD2 = @track2)
if exists(select * from dbo.clubmembers where membershipid = @memnum and status = 'ACTIVE')
select @msgtrack1 = 'Track 1 is GOOD', @msgtrack2 = 'Track 2 is GOOD', @message = 'Card is GOOD'
else
select @msgtrack1 = 'Track 1 is GOOD but In-active', @msgtrack2 = 'Track 2 is GOOD but In-active', @message = 'Check Member Status in Membership'
end
-- track1 good and track2 bad
Else
If exists(select * from dbo.clubmembers where FAMILYID = @track1 and (CLUBCARD1 != @track2 and CLUBCARD2 != @track2))
begin
select @memname = lastname, @memnum = FAMILYID from dbo.clubmembers where FAMILYID = @track1 and (CLUBCARD1 != @track2 and CLUBCARD2 != @track2)
if exists(select * from dbo.clubmembers where FAMILYID = @track1 and (CLUBCARD1 != @track2 and CLUBCARD2 != @track2) and status = 'ACTIVE')
select @msgtrack1 = 'Track 1 is GOOD', @msgtrack2 = 'Track 2 is BAD', @message = 'Please re-encode card'
else
select @msgtrack1 = 'Track 1 is GOOD but In-Active', @msgtrack2 = 'Track 2 is BAD', @message = 'Please re-encode card and Check Member Status in Membership'
end
else
-- track1 bad, track2 good
If exists(select * from dbo.clubmembers where (CLUBCARD1 = @track2 or CLUBCARD2 = @track2) and FAMILYID != @track1)
begin
select @memname = lastname + ', ' + firstname, @memnum = MEMBERSHIPID from dbo.clubmembers where (CLUBCARD1 = @track2 or CLUBCARD2 = @track2)
If exists(select * from dbo.clubmembers where (CLUBCARD1 = @track2 or CLUBCARD2 = @track2) and FAMILYID != @track1 and STATUS = 'ACTIVE')
select @msgtrack1 = 'Track 1 is BAD', @msgtrack2 = 'Track 2 is GOOD', @message = 'Please re-encode card'
else
select @msgtrack1 = 'Track 1 is BAD', @msgtrack2 = 'Track 2 is GOOD but In-active', @message = 'Please re-encode card and Check member status in Membership'
end
select @memname, @memnum, @msgtrack1, @msgtrack2, @message
If you check if sp has two elements or not by doing
and inside the
Ifblock, you can do