Dim dr as OledbDataReader
try
cn.Open()
dr = cmd.ExecuteReader()
if(dr.HasRows) then
dr.close()
label1.text = "Användarnamnet du valde finns redan."
else
dr.close()
Dim cmd2 as new OleDbCommand("INSERT INTO anv(nick,pass) VALUES('" & nick.Text & "','" & pass.Text & "') ",cn)
Cmd2.ExecuteNonQuery()
end if
catch
'throw
finally
cn.Close()
end try
<%@ Page Language="VB" debug="true" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.Oledb" %>
<script runat="server">
sub skapa_click(obj as object, e as eventargs)
Dim cn as new OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=C:\Inetpub\databaser\onska.mdb;")
Dim cmd as new OleDbCommand("select * from anv WHERE nick='" + nick.Text + "'" ,cn)
Dim dr as OledbDataReader
cn.Open()
dr = cmd.ExecuteReader()
if (dr.read()) Then
label1.text = "Användarnamnet du valde finns redan."
dr.close()
else
Dim cmd2 as new OleDbCommand("INSERT INTO anv(nick,pass) VALUES('" & nick.Text & "','" & pass.Text & "') ",cn)
Cmd2.ExecuteNonQuery()
cn.Close
end if
end sub
</script>
<html>
<head>
<title>Registrera</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<form runat="server">
Användarnamn<br/>
<asp:textbox id="nick" runat="server"/><br/>
Lösenord<br/>
<asp:textbox id="pass" runat="server"/><br/>
Ange Lösenordet igen<br/>
<asp:textbox id="passagain" runat="server"/><br/>
<asp:button id="skapa" OnClick="skapa_click" Text="Registrera" runat="server"/><br/>
<asp:label id="label1" runat="server"/>
</form>
</body>
</html>
Jag försöker lägga in användarnamn och lösenord i databasen. Först vill jag dock kolla upp så att inte samma användarnamn redan finns.
Jag kollar då först upp om användaren finns med hjälp av read().
Om användaren inte finns ska värdena läggas till, men då får jag ett felmeddelande som säger att det redan är en datareader öppen till den här databasanslutningen. Men jag har ju lagt till kommandot dr.close() vilket ska se till att datareadern stängs.... eller?
någon som kan se vad som är fel? :q
(jag vet att jag måste kolla upp att man skriver samma lösenord också, jag ska fixa det senare med valdation)
