积极答复者
启动调试后生成的错误如何解决的问题(4)

问题
-
在启动调试后出现了下面的问题。错误提示是:未声明名称“ISDBNULL”。不知道怎么解决。已知db.vb是连接字符串的类文件。
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim strsql, course As String
Dim conn As New constr.db
Dim i, courseid As Integer
strsql = "select max(id) as maxno from klgpointab"
Dim dr As SqlDataReader
Dim myconn As New SqlConnection(conn.getstr)
Dim mycommand1 As New SqlCommand(strsql, myconn)
myconn.Open()
dr = mycommand1.ExecuteReader()
dr.Read()
If IsDBNull(dr.Item(0)) Then
i = 0
Else
i = dr.Item(0) + 1
End If
dr.Close()
Dim dr1 As SqlDataReader
course = Session("coursename")
strsql = "select courseid from courseinfo where coursename='" & course & "'"
Dim mycommand2 As New SqlCommand(strsql, myconn)
dr1 = mycommand2.ExecuteReader
If dr1.Read() Then
courseid = dr1.Item(0)
End If
dr1.Close()
strsql = "insert into klgpointab(id,chapter,knowledgepoint,coursename) values("
strsql = strsql & i & ","
strsql = strsql & courseid * 100 + j & ",'"
strsql = strsql & TextBox1.Text & "',"
strsql = strsql & "'" & course.ToString().Trim() & "')"
Dim mycommand3 As New SqlCommand(strsql, myconn)
mycommand3.ExecuteNonQuery()
j = j + 1
TextBox1.Text = ""
myconn.Close()
mycommand1.Dispose()
mycommand2.Dispose()
mycommand3.Dispose()
myconn.Dispose()
End Subqianghuishi
答案
全部回复
-
改用DBNull.Value来判断
Private Function IsDBNull(ByVal obj As Object) As Boolean
Dim result = FalseIf DBNull.Value.Equals(obj) Then
result = True
End IfReturn result
End Function
http://msdn.microsoft.com/zh-cn/library/system.dbnull(v=vs.90).aspx#Y746
- The blog of typewriter職人
- Convert C# to VB.NET
- /*If my concept is wrong ,please correct me.Thanks.*/
- 已编辑 Shadow .Net 2012年3月17日 2:56
-
楼主,关于你的连接字符串和DBNull的问题照例是可以的,但是我无法重现你的错误,请直接看这个帖子:http://social.msdn.microsoft.com/Forums/zh-CN/295/thread/393fd9d3-fdea-4803-9aab-d8d0258810a7
-
您好。在引入这个函数后,ISDBNULL确实没有问题了,但是您看:这里的Private Sub出现了问题。不知道怎么回事?
Public Shared j As Integer = 1
Private Function IsDBNull(ByVal obj As Object) As Boolean
Dim result = False
If DBNull.Value.Equals(obj) Then
result = True
End If
Return result
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Clickqianghuishi