System.InvalidCastException was unhandled by user code

  • Thread starter Thread starter Deven
  • Start date Start date
D

Deven

I have custom login.aspx page in which I am calling store procedure to verify
if user exist in database. For some reason, when I run application to test,
it will crash on following line with error message...

sqlLoginCheck.Parameters.Add("P")

Message="The SqlParameterCollection only accepts non-null SqlParameter type
objects, not String objects."

Below is exact code in my logincheck sub procedure.

Protected Sub LoginCheck()

Dim intResult As Integer
Dim conSqlConnection As SqlConnection = New
SqlConnection(ConfigurationManager.ConnectionStrings("SRConnectionString").ConnectionString)
Dim sqlLoginCheck As SqlCommand = New SqlCommand("uspCheckLogin",
conSqlConnection)

sqlLoginCheck.CommandType = Data.CommandType.StoredProcedure
sqlLoginCheck.CommandText = "uspCheckLogin"

sqlLoginCheck.Parameters.Add("@Username", Data.SqlDbType.NVarChar,
10).Value = txtUsername.Text
sqlLoginCheck.Parameters.Add("@Password", Data.SqlDbType.NVarChar,
10).Value = txtPassword.Text

Dim P As SqlParameter = New SqlParameter("@Result",
Data.SqlDbType.Int)

P.Direction = Data.ParameterDirection.Output
conSqlConnection.Open()
sqlLoginCheck.Parameters.Add("P")
sqlLoginCheck.ExecuteNonQuery()
intResult = Convert.ToInt32(sqlLoginCheck.Parameters("@Result").Value)
conSqlConnection.Close()
If intResult = 1 Then
Session("strUsername") = txtUsername.Text
Server.Transfer("success.aspx")
Else
Server.Transfer("Failed.aspx")
End If
End Sub

Any help in this matter would be appreciated.

Thanks,
Deven
 
Deven said:
I have custom login.aspx page in which I am calling store procedure to
verify
if user exist in database. For some reason, when I run application to
test,
it will crash on following line with error message...

sqlLoginCheck.Parameters.Add("P")

Message="The SqlParameterCollection only accepts non-null SqlParameter
type
objects, not String objects."

Below is exact code in my logincheck sub procedure.

Protected Sub LoginCheck()

Dim intResult As Integer
Dim conSqlConnection As SqlConnection = New
SqlConnection(ConfigurationManager.ConnectionStrings("SRConnectionString").ConnectionString)
Dim sqlLoginCheck As SqlCommand = New SqlCommand("uspCheckLogin",
conSqlConnection)

sqlLoginCheck.CommandType = Data.CommandType.StoredProcedure
sqlLoginCheck.CommandText = "uspCheckLogin"

sqlLoginCheck.Parameters.Add("@Username", Data.SqlDbType.NVarChar,
10).Value = txtUsername.Text
sqlLoginCheck.Parameters.Add("@Password", Data.SqlDbType.NVarChar,
10).Value = txtPassword.Text

Dim P As SqlParameter = New SqlParameter("@Result",
Data.SqlDbType.Int)

P.Direction = Data.ParameterDirection.Output
conSqlConnection.Open()
sqlLoginCheck.Parameters.Add("P")
sqlLoginCheck.ExecuteNonQuery()
intResult =
Convert.ToInt32(sqlLoginCheck.Parameters("@Result").Value)
conSqlConnection.Close()
If intResult = 1 Then
Session("strUsername") = txtUsername.Text
Server.Transfer("success.aspx")
Else
Server.Transfer("Failed.aspx")
End If
End Sub

Any help in this matter would be appreciated.

Thanks,
Deven

Hi,
What the line < sqlLoginCheck.Parameters.Add("P") > does is trying to add
the string "P" as an sqlparameter, however what You would like to do is to
add the variable named P to the parameters collection using the line:
sqlLoginCheck.Parameters.Add(P)
(notice that there are no quotes around P)

-Zsolt
 
Back
Top