I'm just starting to learn asp.net. What I have is a registration form
for a message board system. Basically, the user enters in their info
and it's validated. So I have a custom validator check to make sure the
username is unique, I have another custom validator that makes sure the
email address is unique and then I save the info to the database. That
means I open the connection to the sqlserver 3 times.
Seems inefficient to me. Is there a better way?
Sub Button1_Click(s ender As Object, e As EventArgs)
if me.isvalid then
Dim connectionStrin g As String = "server='netsdk ';
trusted_connect ion=true; database='db'"
Dim dbConnection As System.Data.IDb Connection = New
System.Data.Sql Client.SqlConne ction(connectio nString)
Dim dbCommand As System.Data.IDb Command = New
System.Data.Sql Client.SqlComma nd
dbCommand.Conne ction = dbConnection
Dim uname as string
Dim password as string
Dim em as string
Dim ip as string
Dim rightnow as date
ip = Request.UserHos tAddress()
rightnow = now
uname = username.text
password = password1.text
em = email.text
dbCommand.Comma ndType = System.Data.Com mandType.Stored Procedure
dbCommand.Comma ndText = "sp_registe r"
Dim dbParam_usernam e As System.Data.IDa taParameter = New
System.Data.Sql Client.SqlParam eter
dbParam_usernam e.ParameterName = "@username"
dbParam_usernam e.Value = uname
dbParam_usernam e.DbType = System.Data.DbT ype.StringFixed Length
dbCommand.Param eters.Add(dbPar am_username)
Dim dbParam_passwor d As System.Data.IDa taParameter = New
System.Data.Sql Client.SqlParam eter
dbParam_passwor d.ParameterName = "@password"
dbParam_passwor d.Value = password
dbParam_passwor d.DbType = System.Data.DbT ype.StringFixed Length
dbCommand.Param eters.Add(dbPar am_password)
Dim dbParam_email As System.Data.IDa taParameter = New
System.Data.Sql Client.SqlParam eter
dbParam_email.P arameterName = "@email"
dbParam_email.V alue = em
dbParam_email.D bType = System.Data.DbT ype.String
dbCommand.Param eters.Add(dbPar am_email)
Dim dbParam_ip As System.Data.IDa taParameter = New
System.Data.Sql Client.SqlParam eter
dbParam_ip.Para meterName = "@ip"
dbParam_ip.Valu e = ip
dbParam_ip.DbTy pe = System.Data.DbT ype.StringFixed Length
dbCommand.Param eters.Add(dbPar am_ip)
Dim dbParam_last_ip As System.Data.IDa taParameter = New
System.Data.Sql Client.SqlParam eter
dbParam_last_ip .ParameterName = "@last_ip"
dbParam_last_ip .Value = ip
dbParam_last_ip .DbType = System.Data.DbT ype.StringFixed Length
dbCommand.Param eters.Add(dbPar am_last_ip)
Dim dbParam_created As System.Data.IDa taParameter = New
System.Data.Sql Client.SqlParam eter
dbParam_created .ParameterName = "@created"
dbParam_created .Value = rightnow
dbParam_created .DbType = System.Data.DbT ype.DateTime
dbCommand.Param eters.Add(dbPar am_created)
Dim dbParam_last As System.Data.IDa taParameter = New
System.Data.Sql Client.SqlParam eter
dbParam_last.Pa rameterName = "@last"
dbParam_last.Va lue = rightnow
dbParam_last.Db Type = System.Data.DbT ype.DateTime
dbCommand.Param eters.Add(dbPar am_last)
Dim rowsAffected As Integer = 0
dbConnection.Op en
Try
rowsAffected = dbCommand.Execu teNonQuery
Finally
dbConnection.Cl ose
End Try
'Server.Transfe r("index.aspx ")
end if
End Sub
Sub CustomValidator _Username( s As Object, e As ServerValidateE ventArgs
)
Dim connectionStrin g As String = "server='netsdk ';
trusted_connect ion=true; database='db'"
Dim dbConnection As System.Data.IDb Connection = New
System.Data.Sql Client.SqlConne ction(connectio nString)
Dim dbCommand As System.Data.IDb Command = New
System.Data.Sql Client.SqlComma nd
dbCommand.Conne ction = dbConnection
dbCommand.Comma ndType = System.Data.Com mandType.Stored Procedure
dbCommand.Comma ndText = "sp_usernam e"
Dim dbParam_usernam e As System.Data.IDa taParameter = New
System.Data.Sql Client.SqlParam eter
dbParam_usernam e.ParameterName = "@username"
dbParam_usernam e.Value = trim(e.value)
dbParam_usernam e.DbType = System.Data.DbT ype.StringFixed Length
dbCommand.Param eters.Add(dbPar am_username)
dbConnection.Op en
Dim cnt as integer
cnt = dbCommand.Execu teScalar
If cnt = 0 Then
e.IsValid = True
Else
e.IsValid = False
End If
End Sub
Sub CustomValidator _Email( s As Object, e As ServerValidateE ventArgs )
Dim connectionStrin g As String = "server='netsdk ';
trusted_connect ion=true; database='db'"
Dim dbConnection As System.Data.IDb Connection = New
System.Data.Sql Client.SqlConne ction(connectio nString)
Dim dbCommand As System.Data.IDb Command = New
System.Data.Sql Client.SqlComma nd
dbCommand.Conne ction = dbConnection
dbCommand.Comma ndType = System.Data.Com mandType.Stored Procedure
dbCommand.Comma ndText = "sp_email"
Dim dbParam_email As System.Data.IDa taParameter = New
System.Data.Sql Client.SqlParam eter
dbParam_email.P arameterName = "@email"
dbParam_email.V alue = trim(email.text )
dbParam_email.D bType = System.Data.DbT ype.String
dbCommand.Param eters.Add(dbPar am_email)
dbConnection.Op en
Dim cnt as integer
cnt = dbCommand.Execu teScalar
If cnt = 0 Then
e.IsValid = True
Else
e.IsValid = False
End If
End Sub
--
..
http://sf-f.org, weblog and search engine for fans and writers of
speculative fiction.
..