检查未将对象引用设置为对象的实例

时间:2015-09-21 18:48:33

标签: sql asp.net sql-server vb.net

我有一个用asp.net构建的网站。我试图根据他们的电脑用户名加入用户名检查。我明白了

  

对象引用未设置为对象的实例。

当不在我的SQL Server数据库中的新用户尝试访问该站点时。我想添加一个“if”语句,将它们重定向到我的错误页面。

我在if语句中添加了什么来捕获该错误而不是获取错误页面。

这是我的代码的一部分,因此您可以知道我正在使用的名称

Dim sqlConnection1 As New SqlConnection("randomserverstuff")
Dim cmd As New SqlCommand
Dim returnValue As Object

cmd.CommandText = "SELECT RESTRICTED FROM USERS WHERE Username='" & Replace(Page.User.Identity.Name, "domain\", "") & "'"

cmd.CommandType = CommandType.Text
cmd.Connection = sqlConnection1

sqlConnection1.Open()

returnValue = cmd.ExecuteScalar()

sqlConnection1.Close()

If Session(returnValue)!= Null) Or returnValue.ToString = "Y" Then

最后一行,is语句的第一部分是我正在尝试构建的内容,并且似乎无法捕获其中的错误。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

所以没有运气之后,我决定在运行我的语句之前检查行数,如果rows = 0则返回y,如果行数大则运行单独的sql语句来确定受限列的结果。

答案 1 :(得分:0)

这是错误的:

If Session(returnValue)!= Null)

真的,这是vb还是c# - 都不是! 考虑到returnValue可以是Nothing,正确的方法是:

If returnValue IsNot Nothing AndAlso Session(returnValue) IsNot Nothing Then

returnValue声明为String,VB会隐式转换它。