我这个代码为什么老显示出错了而不显示其他两个?(用户登陆)Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        '在此处放置初始化页的用户代码
        Dim strID As String, strPW As String
        strID = Request.Cookies("strID").Value
        strPW = Request.Cookies("strPW").Value        Dim strConnection As String
        Dim strSQL As String        strSQL = "Select * From user Where ID='" + strID + "';"//ID是user表里的一个字段
        strConnection = "server=(local);database=Web;user id=sa;password=123"        Dim objConn As New SqlConnection(strConnection)
        Dim objCommand As New SqlCommand(strSQL, objConn)
        Dim objReader As SqlDataReader
        Try
            objConn.Open()
            objReader = objCommand.ExecuteReader
            If objReader.Read = False Then
                lblShow.Text = "该用户名不存在!"
                Response.End()
            Else
                lblShow.Text = "系统载入中请稍候"
            End If
        Catch a As Exception
            lblShow.Text = "出错了!"
        End Try
    End Sub

解决方案 »

  1.   

    先打开数据库连接再在打开的连接上创建Command对象才有效。
      

  2.   

    看不出有什么问题。应该是没问题的了。
    strID = Request.Cookies("strID").Value
    要确保你的strID有值。负责有异常抛出噢
      

  3.   

    SQL查询语句问题,适当的修改你数据库中的列名strSQL = "Select * From user Where ID='" + strID + "';"//ID是user表里的一个字段这个ID是数据库的系统保留字,用这个做列名就可能会出现问题,把这个列的名字改成像U_ID这样试试.
      

  4.   

    2楼:connection的打开位置调了结果一样;
    3楼:我在前面页面做了一个判断:
            If txtID.Text = "" Then
                Response.Write("<script language=jscript>alert('请输入用户名!');</script>")
                Response.End()
            End If
    4楼:把列名改成U_ID仍然有误,不过受到您的启发,我把user表名改成users,把表里的字段全改成 U_*,结果成功了!
      

  5.   

    哦,对,user是数据库的关键字。