病急乱投医!!!!!

xzhy80 2004-05-08 05:27:16
我也不知道我问的问题是不是这个板块的,但我用的软件是vb.net对web的,所以就上来问了。
我做的一段用户登陆代码,调试通过了,但要求把对库进行操作的语句,写到类中,
想了一个下午,也没有什么结果,请各位帮忙啊!

Dim TempPassword As String
Dim TempUser As String

TempUser = Trim(TxtUserID.Text)
TempPassword = Trim(TxtPassword.Text)
If Page.IsValid Then

Dim StrConn As String = "user ID = sa; password =;"
StrConn += "database = bugs; server = (local);"
StrConn += "connect timeout =60"

Dim Conn As New SqlConnection(StrConn)

If Conn.State <> ConnectionState.Open Then
Conn.Open()
End If
Dim StrSql As String = "SELECT * FROM muser WHERE userid ='" & TempUser & "'AND passwd='" & TempPassword & "'"
Dim Cmd As New SqlCommand(StrSql, Conn)

Dim Dr As SqlDataReader = Cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection)

Dim ReadTrue As Boolean = False

If Dr.Read() = True Then
Dim TempStr As String
TempStr = Dr("sect")
Response.Write("SECT:" & TempStr & "<br>")
End If
Dr.Close()
If Conn.State <> ConnectionState.Closed Then
Conn.Close()
End If

If ReadTrue = True Then

Conn = New SqlConnection(StrConn)

If Conn.State <> ConnectionState.Open Then
Conn.Open()
End If

StrSql = "SELECT msg,msgid FROM mmsg WHERE msgid = 'msg001'"

Cmd = New SqlCommand(StrSql, Conn)
Dr = Cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection)

If Dr.Read() = False Then

Else

Session("msgid") = Dr("msgid")
Response.Write("MSGID:" & Session("msgid") & "<br>")

Session("msg") = Dr("msg")
Response.Write("MSG:" & Session("msg") & "<br>")

End If
Dr.Close()
If Conn.State <> ConnectionState.Closed Then
Conn.Close()
End If

End If
Response.Redirect("PCom002.aspx")
End If


If CInt(lbltemp.Text) = 3 Then
Response.Write("You have no change to enter!")
TxtUserID.Enabled = False
TxtPassword.Enabled = False

Else
TxtUserID.Text = ""
TxtPassword.Text = ""
Response.Write("Id or password error!")

Dim TempInt As Integer = 1
TempInt += CInt(lbltemp.Text)
lbltemp.Text = TempInt
End If
...全文
33 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
xzhy80 2004-05-09
  • 打赏
  • 举报
回复
谢谢啊
Brunhild 2004-05-09
  • 打赏
  • 举报
回复
If True Then这句是多余的,请删掉
Brunhild 2004-05-09
  • 打赏
  • 举报
回复
没仔细看,大概是这样吧:
以下是新类:
Public Class Class1
Dim Conn As SqlConnection

Public Sub New()
Dim StrConn As String = "user ID = sa; password =;"
StrConn += "database = bugs; server = (local);"
StrConn += "connect timeout =60"

Conn = New SqlConnection(StrConn)
End Sub

Public Function GetSect(ByVal TempUser As String, ByVal TempPassword As String) As String
If Conn.State <> ConnectionState.Open Then
Conn.Open()
End If

Dim StrSql As String = "SELECT * FROM muser WHERE userid ='" & TempUser & "'AND passwd='" & TempPassword & "'"
Dim Cmd As New SqlCommand(StrSql, Conn)
Dim Dr As SqlDataReader = Cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection)
Dim TempStr As String
If Dr.Read() = True Then
TempStr = Dr("sect")
End If
Dr.Close()
If Conn.State <> ConnectionState.Closed Then
Conn.Close()
End If
Return TempStr
End Function

Public Function GetMsgid(ByRef msg As String, ByRef ID As Integer) As Boolean
If Conn.State <> ConnectionState.Open Then
Conn.Open()
End If

Dim StrSql As String = "SELECT msg,msgid FROM mmsg WHERE msgid = 'msg001'"
Dim Cmd As New SqlCommand(StrSql, Conn)
Dim Dr As SqlDataReader = Cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection)
Dim result As Boolean
If Dr.Read() = False Then
ID = Dr("msgid")
msg = Dr("msg")
result = True
End If
Dr.Close()
If Conn.State <> ConnectionState.Closed Then
Conn.Close()
End If

Return result
End Function

End Class

以下是新的调用代码:

Dim TempPassword As String
Dim TempUser As String

TempUser = Trim(TxtUserID.Text)
TempPassword = Trim(TxtPassword.Text)

If Page.IsValid Then
If True Then
Dim c1 As New Class1
Dim TempStr As String = c1.GetSect(TempUser, TempPassword)
If Not TempStr Is Nothing Then
Response.Write("SECT:" & TempStr & "<br>")

Dim ID As Integer
Dim msg As String
If c1.GetMsgid(msg, ID) Then
Session("msgid") = ID
Response.Write("MSGID:" & Session("msgid") & "<br>")
Session("msg") = msg
Response.Write("MSG:" & Session("msg") & "<br>")

End If
Response.Redirect("PCom002.aspx")
End If

If CInt(lbltemp.Text) = 3 Then
Response.Write("You have no change to enter!")
TxtUserID.Enabled = False
TxtPassword.Enabled = False

Else
TxtUserID.Text = ""
TxtPassword.Text = ""
Response.Write("Id or password error!")

Dim TempInt As Integer = 1
TempInt += CInt(lbltemp.Text)
lbltemp.Text = TempInt
End If
End If

lansluo 2004-05-08
  • 打赏
  • 举报
回复
什么问题啊?不是很理解,你就把对数据库的操作放到一个类中好了。无非是实现分层罢了
xzhy80 2004-05-08
  • 打赏
  • 举报
回复
大家都来看啊:`(
xzhy80 2004-05-08
  • 打赏
  • 举报
回复
就是除了sql那句以外的对库进行操作的部分最好都给放到类中
实现调用的那种
xzhy80 2004-05-08
  • 打赏
  • 举报
回复
希望明天早上能有惊喜等着我!

16,555

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧