Hej hej,När la sidan online fungerar vissa saker plötsligt inte!
Glad i hågen, av att sidan nu äntligen är hyfsat färdig, slängde jag upp den på webbhotellet.
Men döm av min förvåning när allt inte fungerar plötsligt.
Alla element kommer upp. Det finfint att läsa från databasen osv. Det går även att skriva till databasen i form av gästboksinlägg.
Men däremot. När man ska lägga registrera en kväll, då blir det problem. Användaren fyller i datum, rubrik, brödtext och kryssar i vilka som är närvarande. Men när man trycker på knappen så händer ingenting! Jag har kollat databasen så att det ändå inte skrivs till den, och det gör det inte. I sub-en som anropas av klicket på knappen har jag på första raden lagt in en response.write för att testa, men inte ens detta kommer upp.
Mycket märkligt, lokalt funkar det hur bra som helst.
Någon som har några idéer? Se kod längst ner.
ps. använder ms access, asp.net 1.x/vb
//tack på förhand, mvh Björn
<%@ Control Language="vb" %>
<!--#include file="inkluderingsfiler/globalt.inc.aspx" -->
<%@ Import Namespace="System.data" %>
<%@ Import Namespace="System.data.oledb" %>
<%@ Import Namespace="system.web.mail" %>
<script language="VB" runat="server">
Public valColorList AS Boolean
'***************************************************************************************
' Page_load körs direkt när sidan laddas
'***************************************************************************************
sub page_load()
'// kolla så att du är inloggad, om inte redirect till logon.aspx
Dim medlem_id as integer = Session("medlem_id")
if medlem_id <=0 then response.redirect("index.aspx")
if isPostBack = false then
'// sql-sats för att hämta allt från tblMedlem
Dim sql as string
sql="SELECT tblMedlem.* FROM tblMedlem ORDER BY fornamn"
'// deklarera dr som ett OLEDBDatareader-objekt. Anropar funktionen datareader_data med
'// sql-satsen, funktionen returnerar just ett OLEDBDatareader-objekt.
Dim Dr as OLEDBDatareader = datareader_data(sql)
'// Bind datan till dropdown-menyn med förnamn
boxNarvarande.dataSource=Dr
boxNarvarande.databind()
dr.close()
else
end if
end sub
'***************************************************************************************
'***************************************************************************************
' registrera_klick körs när användaren trycker på Ok-knappen.
'***************************************************************************************
'sub regKvall(sender As Object, e As EventArgs)
Sub regKvall(sender As Object, e As EventArgs)
response.Write("hej")
'***************************************************************************************
'Kontrollera så att något i checkboxlist:en är ifyllt
'***************************************************************************************
'***************************************************************************************
'***************************************************************************************
'Lagra datum, rubrik och brödtext tillsammans med hos vem kvällen var hos i tblKvall
'***************************************************************************************
Dim NyttKvallid as string
Dim Con as new OLEDBConnection(db)
'Metoden open öppnar anslutningen
Con.open()
'//nytt = för att i sql-satsen sedan byta ut så att får radbrytningar
Dim nytttext as string
nytttext = txtBrodtext.text
'-------------------------
Dim strSql2 as string = "SELECT * FROM tblKvall"
'// Hämta data från databasen med hjälp av funktionen datareader_data
Dim Dr2 as OLEDBDatareader = datareader_data(strSql2)
'// sql-sats som lägger in textboxarnas värde i en ny post i tblKvall (tillsammans med medlem_id = vem kvällen var hos)
'dim sql as string = "INSERT INTO tblKvall(datum,rubrik,brodtext,medlem_id) VALUES('" & txtDatum.text & "','" & txtRubrik.text & "','" & txtBrodtext.text & "'," & session("medlem_id") & ")"
dim sql as string = "INSERT INTO tblKvall(datum,rubrik,brodtext,medlem_id) VALUES('" & txtDatum.text & "','" & txtRubrik.text & "','" & Replace(nytttext, vbCrlf,"<BR>") & "'," & session("medlem_id") & ")"
'response.Write(sql)
'// Command-objekt
dim Cmd as new OLEDBCommand(sql, Con)
'// Köra frågan mot databasen
Cmd.executeNonQuery()
cmd.commandtext = "SELECT @@identity"
NyttKvallid = convert.ToInt32(Cmd.ExecuteScalar())
'***************************************************************************************
'Hämta hem allt från tblNarvarande
'***************************************************************************************
Dim strSql3 as string = "SELECT * FROM tblNarvarande"
Dim Dr3 as OLEDBDatareader = datareader_data(strSql3)
'***************************************************************************************
'***************************************************************************************
'For-loop som körs för alla rutor. Om ruta är vald så ska ny post skrivas till tblNarvarande
'***************************************************************************************
Dim i as integer
For i=0 To BoxNarvarande.Items.Count - 1
If BoxNarvarande.Items(i).Selected Then
'Dim NyttKvall_id as string = "@@identity"
Dim sql4 as string = "INSERT INTO tblNarvarande(kvall_id,medlem_id) VALUES(" & NyttKvallid & "," & boxNarvarande.items(i).value & ")"
'response.Write(sql4)
'// Command-objekt
Dim Cmd2 as new OLEDBCommand(sql4, Con)
'// Köra frågan mot databasen
Cmd2.executeNonQuery()
End If
Next
'// Stäng anslutningen
Con.close()
'// Förhindra låsning
Dr2.close()
Dr3.close()
'response.Redirect("create3.aspx?kvallens_id=" & NyttKvallid)
response.Redirect("index.aspx?pageid=create3&kvallens_id=" & NyttKvallid)
end sub
'***************************************************************************************
'***************************************************************************************
'Funktion för att hämta data från databasen
'***************************************************************************************
'Anropas så här:
' Dim Dr as OLEDBDatareader
' Dr = datareader_data("sql-satsen här")
function datareader_data(sql as String) as OLEDBDatareader
'// Deklarera och öppna anslutning
Dim Con as new OLEDBConnection(db)
Con.open()
'// Hämta info från databasen med hjälp av sql-satsen och anslutnings-objektet
Dim Cmd as New OLEDBCommand(sql,Con)
'// Skapa en datareader att lägga information i
Dim Dr as OLEDBDatareader
'// Knyt info från command-objekt till vår datareader
Dr = Cmd.executeReader(Commandbehavior.closeConnection)
'// Returnera datareader
return Dr
'// stäng anslutningen
con.close()
'// stäng datareadern
dr.close()
end function
'***************************************************************************************
</script>
<html>
<head>
<title><%= sidtitel %> - Lägg till grabbkväll del 2</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="/css/grabbkvall.css" rel="stylesheet" type="text/css">
</head>
<body>
<p class="headline">Lägg till grabbkväll - 2 av 6</p>
<div class="tablepadding">
<table border="0" cellpadding="3" cellspacing="0" class="formtext" >
<tr>
<td width="109" align="left" valign="top">Datum</td>
<td width="162" align="left" valign="top"><asp:textbox ID="txtDatum" CssClass="formtext" runat="server" /> <br> </td>
<td align="left" valign="top"> <asp:requiredfieldvalidator id="datumtomt" autopostback="true" runat="server" Text="Fyll i datum!" ControlToValidate="txtDatum" CssClass="formtext" Display="Dynamic" /> <br> </td>
</tr>
<tr>
<td align="left" valign="middle"> </td>
<td align="left" valign="top">ex. ÅÅÅÅ-MM-DD</td>
<td align="left" valign="top"><asp:regularexpressionvalidator id="datumkoll" runat="server" ControlToValidate="txtDatum" ValidationExpression="^[1-9][0-9]{3}-(([0][0-9])|([1][0-2]))-(([0-2][0-9])|([3][0-1]))" CssClass="formtext" Text="Fel format på datum" /></td>
</tr>
<tr>
<td align="left" valign="top">Rubrik</td>
<td align="left" valign="top"><asp:textbox ID="txtRubrik" Columns="51" MaxLength="50" CssClass="formtext" runat="server" /></td>
<td align="left" valign="top"><asp:requiredfieldvalidator id="rubriktomt" autopostback="true" runat="server" Text="Fyll i rubrik!" ControlToValidate="txtRubrik" CssClass="formtext" Display="Dynamic" /></td>
</tr>
<tr>
<td height="150" align="left" valign="top">Om kvällen</td>
<td height="150" align="left" valign="top"><asp:textbox Columns="50" CssClass="formtext" TextMode="MultiLine" Wrap="true" ID="txtBrodtext" Height="200" runat="server" /></td>
<td height="150" align="left" valign="top"><asp:requiredfieldvalidator id="brodtexttomt" autopostback="true" runat="server" Text="Fyll i beskrivning av kvällen!" ControlToValidate="txtBrodtext" CssClass="formtext" Display="Dynamic" /></td>
</tr>
<tr>
<td align="left" valign="middle">Närvarande</td>
<td><asp:checkboxlist CssClass="formtext" ID="boxNarvarande" RepeatColumns="2" DataTextField="fornamn" DataValueField="medlem_id" runat="server"></asp:checkboxlist></td>
<td align="left" valign="top"> <asp:label id="valLabel" RUNAT="server" CssClass="formtext" ForeColor="#FF0000" Visible="false"/> </td>
</tr>
<tr>
<td> </td>
<td>
<asp:button runat="server" ID="btnReg" CssClass="formtext" text="Registrera kvällen" ToolTip="Registrera och gå vidare!" Enabled="true" OnClick="regKvall" />
</td>
<td> </tr>
</table>
</div>
</body>
</html>