当前位置:编程学习 > C#/ASP.NET >>

高分请教!从类型“DBNull”到类型“Integer”的强制转换无效


Imports System.Security.Cryptography
Imports System.Data
Imports System.Text
Imports System.Data.SqlClient
Public Class login
    Inherits System.Web.UI.Page
    Public objconn As New SqlConnection(System.Configuration.ConfigurationSettings.AppSettings("connstring"))


#Region " Web 窗体设计器生成的代码 "

    '该调用是 Web 窗体设计器所必需的。
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()

    End Sub
    Protected WithEvents TextBox1 As System.Web.UI.WebControls.TextBox
    Protected WithEvents TextBox2 As System.Web.UI.WebControls.TextBox
    Protected WithEvents Label1 As System.Web.UI.WebControls.Label
    Protected WithEvents Button1 As System.Web.UI.WebControls.Button

    '注意: 以下占位符声明是 Web 窗体设计器所必需的。
    '不要删除或移动它。
    Private designerPlaceholderDeclaration As System.Object

    Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
        'CODEGEN: 此方法调用是 Web 窗体设计器所必需的
        '不要使用代码编辑器修改它。
        InitializeComponent()
    End Sub

#End Region

    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        '在此处放置初始化页的用户代码
        If Not IsPostBack Then
            Session("a") = 0
        End If
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        If Session("a") <= 2 Then
            Dim strSQL As String = "SELECT * FROM newuser WHERE accountnum=@yUserid AND password=@Password"

            Dim objCmd As New SqlCommand(strSQL, objconn)
            Dim paramUserid As SqlParameter
            paramUserid = New SqlParameter("@yUserid", SqlDbType.VarChar, 50)
            paramUserid.Value = TextBox1.Text
            objCmd.Parameters.Add(paramUserid)

            '加密密码
            Dim md5Hasher As New MD5CryptoServiceProvider
            Dim hashedDataBytes As Byte()
            Dim encoder As New UTF8Encoding
            hashedDataBytes = md5Hasher.ComputeHash(encoder.GetBytes(TextBox2.Text))

            Dim paramPwd As SqlParameter
            paramPwd = New SqlParameter("@Password", SqlDbType.Binary, 6)
            paramPwd.Value = hashedDataBytes
            objCmd.Parameters.Add(paramPwd)

            objconn.Open()
            Dim iResults As Integer = objCmd.ExecuteScalar()
            objconn.Close()

            If iResults = 1 Then
                Session("ying") = TextBox1.Text
                Response.Write("<SCRIPT LANGUAGE='javascript'>window.open('gnym.aspx',null,'height=480,width=640,top=150,left=200 ')</script>")
            ElseIf iResults = 0 Then
                Label1.Text = "密码或帐户不正确, 请重新输入"
                If Session("a") = 2 Then
                    Label1.Text = "错误!你已经输错了三次,请与管理员联系!"
                    Button1.Enabled = False
                    Exit Sub
                End If
                Session("a") += 1
            End If

        End If
    End Sub
End Class



郁闷!就是不知道那里有问题啊 !!!!!!!!

类型“DBNull”到类型“Integer”的强制转换无效。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: System.InvalidCastException: 从类型“DBNull”到类型“Integer”的强制转换无效。

源错误: 


行 61: 
行 62:             objconn.Open()
行 63:             Dim iResults As Integer = objCmd.ExecuteScalar()
行 64:             objconn.Close()
行 65: 
 
--------------------编程问答-------------------- 数据库中的值为NULL --------------------编程问答-------------------- 同意 --------------------编程问答-------------------- 谢谢了,可以了 --------------------编程问答-------------------- 要怎么解决啊
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,