hi there,
i am coming up with a login page and i am having problem with the codes while i run the program. The error says, Invalid attempt to read when no data is present.' This errors occurs when i type 'gobi' as the delivery boy.
The error says 'FirstName'. when i enter '123456' as the customer.


Else
ddltype.SelectedValue = "DeliveryBoy"
Session("ses_uname") = rdr("FirstName") + " " + rdr("LastName") Session("ses_uid") = rdr("staffid")
Session("ses_utype") = rdr("Designation")
Response.Redirect("Direct.aspx")

Imports System.Data.Sql
Imports System.Data.SqlClient
Imports System.Web
Partial Class _Default
    Inherits System.Web.UI.Page
    Dim str As String = ConfigurationManager.ConnectionStrings("CourierSystemConnectionString").ConnectionString
    Dim con As SqlConnection
    Dim cmd As SqlCommand
    Dim rdr As SqlDataReader
    Dim sql As String
    Dim t As String

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    End Sub
    Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnlogin.Click
        con = New SqlConnection(str)
        con.Open()
        Dim type As String
        type = ddltype.SelectedValue
        If type = "Customer" Then
            sql = "select * from CusRegis_Table where CusID='" + tuname.Text + "' and password2='" + tupass.Text + "'"

        Else
            sql = "select * from StaffRegis_Table where StaffID='" + tuname.Text + "' and Password='" + tupass.Text + "'"
        End If
        cmd = New SqlCommand(sql, con)
        rdr = cmd.ExecuteReader



        If rdr.Read() Then
            If ddltype.SelectedValue = "Manager" Then
                Session("ses_dname") = rdr("FirstName") + " " + rdr("LastName")
                Session("ses_uid") = rdr("StaffID")
                Response.Redirect("ManagerDirect.aspx")
            ElseIf rdr.Read() Then
                If ddltype.SelectedValue = "Customer" Then
                    Session("ses_dname") = rdr("CusFname") + " " + rdr("CusLName")
                    Session("ses_uid") = rdr("cusid")
                    'Session("ses_utype") = rdr("Designation")
                    Response.Redirect("Domestic.aspx")
                End If
                'ElseIf 
                '   ddltype.SelectedValue = "Delivery Boy" Then
                '  Session("ses_dname") = rdr("FirstName") + " " + rdr("Lastname")
                ' Session("ses_uid") = rdr("staffid")
                'Session("ses_utype") = rdr("Designation")
                'Response.Redirect("DeliveryBoyDirection.aspx")
                Else
                    ddltype.SelectedValue = "DeliveryBoy"
                   [B] Session("ses_uname") = rdr("FirstName") + " " + rdr("LastName")[/B]                    Session("ses_uid") = rdr("staffid")
                    Session("ses_utype") = rdr("Designation")
                    Response.Redirect("Direct.aspx")



                End If
        End If
    End Sub
End Class

Recommended Answers

All 3 Replies

chrispaul8676,
This method must be issued once if result is a single row.

rdr.Read()

sorry, but i don't understand this..please assist me.

VB.NET - Use & sign to concat strings.

Imports System.Data.Sql
Imports System.Data.SqlClient
Imports System.Web
Partial Class _Default
    Inherits System.Web.UI.Page
    Dim str As String = ConfigurationManager.ConnectionStrings("CourierSystemConnectionString").ConnectionString
    Dim con As SqlConnection
    Dim cmd As SqlCommand
    Dim rdr As SqlDataReader
    Dim sql As String
    Dim t As String

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    End Sub
    Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnlogin.Click
        con = New SqlConnection(str)
        con.Open()
        Dim type As String
        type = ddltype.SelectedValue
        If type = "Customer" Then
            sql = "select * from CusRegis_Table where CusID='" &  tuname.Text  &  "' and password2='"  &  tupass.Text  &  "'"

        Else
            sql = "select * from StaffRegis_Table where StaffID='" &  
                tuname.Text  &  "' and Password='"  &  tupass.Text  &  "'"
        End If

        cmd = New SqlCommand(sql, con)
        rdr = cmd.ExecuteReader

        If rdr.Read() Then
             If ddltype.SelectedValue = "Manager" Then
                 Session("ses_dname") = rdr("FirstName")  &  " "  
                                                         & rdr("LastName")
                Session("ses_uid") = rdr("StaffID")
                Response.Redirect("ManagerDirect.aspx")
             End If
             If ddltype.SelectedValue = "Customer" Then
                    Session("ses_dname") = rdr("CusFname")  &  " "  
                                                            &  rdr("CusLName")
                    Session("ses_uid") = rdr("cusid")
                    Response.Redirect("Domestic.aspx")
              End IF
               If   ddltype.SelectedValue = "DeliveryBoy"
                    Session("ses_uname") = rdr("FirstName")  & " "  
                                           &  rdr("LastName")
                    Session("ses_uid") = rdr("staffid")
                    Session("ses_utype") = rdr("Designation")
                    Response.Redirect("Direct.aspx")
                End If
        End If

    End Sub
End Class
Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.