Hej, Du skapar upp en kolumn som heter t.ex. Userid. Du lägger först in värdena i tblKvall och hämtar ut id på den genom @@identity, och med den lägger du in id i nästa tabell. Hoppas jag förstod dig rätt bara. Hej, En radiobuttonlist kan du bara använda ett värde. Tänker du inte på checkboxlist? Hej igen Hans (och alla andra), Prova denna tillägg efter Next. Var ett tag sen jag höll på med VB. Dock bör du köra parametiserade frågor mot databasen. Den är ganska utsatt just nu. Här kan du läsa en ganska bra artikel om detta med lite tips: http://www.codeproject.com/cs/database/SqlInjectionAttacks.asp Hej Hans, Hej Hans,radionbuttonlist:ens värden ska lagras i tabell1 tillsammans med id från en anna
Nu är jag verkligen i behov av hjälp. (kör Asp.net & VB, databas: Access samt använder WebMatrix)
Jag har ett formulär. tre text-fält (datum, rubrik, brodtext) + en radiobuttonlist (som hämtar in förnams-värden från en tabell som heter tblMedlem).
När man fyllt i textfälten & klickat i de personer som var närvarande (i radiobuttonlist:en) kan man klicka på Ok.
Då vill jag att datum, rubrik och brodtext lagras i en tabell som heter tblKvall. Dessutom ska de förvalda personerna i radiobuttonlist:en lagras i en annan tabell som heter tblNarvarande med KRUXET att de som läggs till i den ska ha ett och samma kvall_id ( = vilket ska vara samma som det som just lagts in i tblKvall). På så vis får jag ju en koppling mellan tblNarvarande och tblKvall. Villka var närvarande den aktuella kvällen.
Hur genomför jag detta på ett smidigt sätt med asp.net och sql-satser för att lagra det på rätt sätt i databasen?
Tacksam för svar!
//mvh BjörnSv: radionbuttonlist:ens värden ska lagras i tabell1 tillsammans med id från en
Sv:radionbuttonlist:ens värden ska lagras i tabell1 tillsammans med id från en
Tack för svaret. Det låter som en bra idé. @@identity är som jag förstått till för att hämta senast inlagda.
När jag sen ska lägga in poster i tblNarvarande ska det ju läggas in en post för varje ikryssad ruta i min radiobuttonlist. Hur ska jag genomföra det? Gör jag en loop som skriver in en post för varje värde som hittas? Den liksom stegar igenom radiobuttonlist:en...och så för varje post lägger jag in @@identity (senast inlagda kvall_id). Kan du skriva ner någon kod för detta?
Tack på förhand,
//mvh Björn, alias: bbqueSv: radionbuttonlist:ens värden ska lagras i tabell1 tillsammans med id från en
Jag kan visa kort principen just nu (finns nog andra som är bätre än mig :)):
<code>
for(int i=0; CheckBoxList1.Items.Count-1; i++) {
if(CheckBoxList1.Item[i].Selected) {
Kod för att läsa in den posten till databasen.
}
}
</code>
<code>
For(Dim i As Integer =0; CheckBoxList1.Items.Count-1; i++)
If(CheckBoxList1.Item[i].Selected) Then
Kod för att läsa in den posten till databasen.
End If
End For
</code>Sv:radionbuttonlist:ens värden ska lagras i tabell1 tillsammans med id från en
Tack för dina svar. Du hade rätt i att det var checkboxlist. Dina tips var bra. Dock inte tillräckligt utförliga för mig som enkel nybörjare...:-)
Jag bifogar lite kod på hur jag försöker göra. Vissa moment är lite som sagt lite oklara.
Att lagra informationen datum, rubrik, brödtext och vem kvällen var hos i tblKvall är inga problem. Sen skrev du att jag skulle hämta in @@identity. Okej. Men om jag hämtar in den genom SELECT @@identity from tblKvall, måste jag inte oxå hämta in tblNarvarande.* för att kunna lagra information i just tblNarvarande? Och hur ska jag nu få nytta för @@identity när jag skriver sql-satsen för att lägga in värdena från checkboxlist:en? Och sen får jag inte riktigt kläm på for-loopen som ska lägga in poster i tblNarvarande med senast inlagda id från tblKvall så länge den inte gått igenom hela checkboxlist:en...
Mina tabeller ser ut så här:
tblKvall | kvall_id (primär), datum, rubrik, brodtext, medlem_id (räknare här, primär i en annan tabell över medlemmarna) och två fält till.
tblNarvarande | narvarande_id (primär), kvall_id (räknare här, primär i tblKvall_id), medlem_id (primär i en annan tabell över medlemmarna).
Jag använder som sagt Asp.net & VB & MS Access samt Webmatrix...
KOD::
-------------------------------------
'************************************************************************************
' registrera_klick körs när användaren trycker på Ok-knappen.
'************************************************************************************
sub regKvall(sender As Object, e As EventArgs)
'***************************************************************************
'Lagra datum, rubrik och brödtext tillsammans med hos vem kvällen var hos i tblKvall
'***************************************************************************
Dim Con as new OLEDBConnection(db)
'Metoden open öppnar anslutningen
Con.open()
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") & ")"
'// Command-objekt
dim Cmd as new OLEDBCommand(sql, Con)
'// Köra frågan mot databasen
Cmd.executeNonQuery()
'***************************************************************************
'Hämta hem senaste posten
'***************************************************************************
Dim strSql3 as string = "SELECT @@identity FROM tblKvall"
'// Hämta data från databasen med hjälp av funktionen datareader_data
Dim Dr3 as OLEDBDatareader = datareader_data(strSql3)
'***************************************************************************
'Hämta hem senaste posten
'***************************************************************************
'// For-loop som körs för alla rutor. Kollar för varje gång om någon ruta är vald, om den är det så ska ny post skrivas till tblNarvarande
Dim ItemNum as Integer
For ItemNum=0 to boxNarvarande.Items.Count - 1
If boxNarvarande.Items(ItemNum).Selected = True Then
Dim sql2 as string = "INSERT INTO tblNarvarande(kvall_id,medlem_id) VALUES('" & boxNarvarande.selecteditem.text & "'," & boxNarvarande.selecteditem.text & "')"
response.Write(sql2)
End If
Next
'// Stäng anslutningen
Con.close()
'// Förhindra låsning
Dr2.close()
Dr3.close()
response.Redirect("create3.aspx")
end sub
'************************************************************************************
-------------------------------------
Jättetacksam för mer hjälp!
//mvh BjörnSv: radionbuttonlist:ens värden ska lagras i tabell1 tillsammans med id från en
<code>
For ItemNum=0 to boxNarvarande.Items.Count - 1
If boxNarvarande.Items(ItemNum).Selected = True Then
Dim sql2 as string = "INSERT INTO tblNarvarande(kvall_id,medlem_id) VALUES('" & boxNarvarande.selecteditem.text & "'," & boxNarvarande.selecteditem.text & "')"
response.Write(sql2)
End If
Next ItemNum
</code>Sv:radionbuttonlist:ens värden ska lagras i tabell1 tillsammans med id från en
Ska testa med Next ItemNum när jag kommer hem. Men lite mer grejer:
Vet du hur jag ska göra för att hämta hem senaste id från tblKvall och lägga in det i alla poster som läggs in tblNarvarande? Nu har jag ju skrivit:
Dim sql2 as string = "INSERT INTO tblNarvarande(kvall_id,medlem_id) VALUES('" & boxNarvarande.selecteditem.text & "'," & boxNarvarande.selecteditem.text & "')"
Alltså har jag skrivit boxNarvarande.selecteditem.text två gånger. Men det första ska ju lagra kvall_id som jag på något sätt ska hämta genom @@identity. Hur skriver jag det i SQL-satsen?
Och måste jag inte välja förutom SELECT @@identity FROM tblKvall också SELECT * FROM tblNarvarande? Eller tänker jag fel? Måste jag hämta in allt från tblNarvarande för att jag sen ska kunna lägga in något i den tabellen?
//mvh BjörnSv: radionbuttonlist:ens värden ska lagras i tabell1 tillsammans med id från en
Försökte göra som du vill med loop:en, skriva: Next ItemNum. Men SQL-strängen som skrivs är bara: INSERT INTO tblNarvarande(kvall_id,medlem_id) VALUES('2',2')INSERT INTO tblNarvarande(kvall_id,medlem_id) VALUES('2',2')INSERT INTO tblNarvarande(kvall_id,medlem_id) VALUES('2',2'),
dvs samma upprepar sig!
Förutom det problemet är ju problemet med @@identity...hur ska få in det med posterna som läggs in i tblNarvarande?
Ps. Har försökt leta information om detta och sett en del information om liknande fall. Men då använder man sig av typ set Nytt_id = db.execute("SELECT @@identity"), men när jag försöker göra det så får jag meddelandet "'Let' and 'Set' assignment statements are no longer supported."
Är det någon som kan visa mig hur jag ska göra?
Tacksam för mer hjälp!
//mvh Björn