Avatar billede bambinogrande Nybegynder
24. januar 2003 - 10:12 Der er 14 kommentarer og
1 løsning

Hvordan smider jeg "DropDownList1.SelectedItem.Value" i en SP?

Hej,-

Følgende kode vil jeg gerne lave om til en Function og smide SQL'en i SP. Men hvordan integrere jeg "DropDownList1.SelectedItem.Value" i funktionen og i SP'en?

Sub subListChange(ByVal Source As System.Object, ByVal e As System.EventArgs)
        Dim strConnection As String = Configuration.ConfigurationSettings.AppSettings("ConnectString")
        Dim strSQL As String = "SELECT News.NewsID, News.Topic, News.SubTopic, News.News, News.NewsDate, News.Publisher " & _
                              "FROM News WHERE NewsID = " & DropDownList1.SelectedItem.Value

        Dim objConnection As New SqlConnection(strConnection)
        Dim objCommand As New SqlCommand(strSQL, objConnection)

        objConnection.Open()
        rpNews.DataSource = objCommand.ExecuteReader()
        rpNews.DataBind()
        objConnection.Close()
    End Sub

Med venlig hilsen

/B.G.
Avatar billede kichian Nybegynder
24. januar 2003 - 10:19 #1
create procedure SP_HentNews @newsIndex int
as
Begin
SELECT News.NewsID, News.Topic, News.SubTopic, News.News, News.NewsDate, News.Publisher FROM News WHERE NewsID = @newsIndex
End

Og så retter du din strSQL til:

strSQL = "SP_HentNews " & DropDownList1.SelectedItem.Value
Avatar billede bambinogrande Nybegynder
24. januar 2003 - 10:36 #2
Yes det virker! :-) thnx,-

Jeg fatter bare ikke hvordan @newsIndex kan blive til DropDownList1.SelectedItem.Value???? :-(

Hvordan smider jeg det her i en funktion?

Sub subListChange(ByVal Source As System.Object, ByVal e As System.EventArgs)
        Dim myConnection As New SqlConnection(connectionString)
        Dim strSQL As String = "SP_HentNews " & DropDownList1.SelectedItem.Value
        Dim myCommand As New SqlCommand(strSQL, myConnection)

        myConnection.Open()
        rpNews.DataSource = myCommand.ExecuteReader()
        rpNews.DataBind()
        myConnection.Close()
    End Sub
Avatar billede midas_dk Nybegynder
29. januar 2003 - 22:42 #3
Øhh... Det ligger i en sub allerede - hvad er problemet? Skal du returnere noget specifikt?
Avatar billede bambinogrande Nybegynder
30. januar 2003 - 09:11 #4
>> midas_dk! Nej det rykker som det skal nu.

Jeg er bare stadig lidt "newbie" i brugen af Sub's og Function's.

Jeg ved godt at en funktion returnere noget, men jeg har lidt svært ved at bedømme hvornår og til hvad jeg bruge enten den ene eller den anden.

Har du en god tommel finger regel der?

Og du får lige nogle points! Tak for hjælpen!

:-)
Avatar billede burningice Nybegynder
30. januar 2003 - 11:37 #5
bg>> som du selv siger... når din funktion skal returnere noget bruger man.. ja, funktion... ellers er det sub... persnoligt synes jeg c#'s måde er lidt mere elegant... her hedder det hverken function eller sub, men enten void hvis det ikke returnere noget, eller navnet på den datatype der bliver returneret.. f.eks.:

private void Test() {
  //denne funktion returnere ikke noget
}

private string TestString() {
  return "denne funtkion returnere en streng;
}

private object TestObject() {
  //denne funktion returnerer et object
}
Avatar billede bambinogrande Nybegynder
30. januar 2003 - 11:42 #6
Okay......... cool nok. Det vidste jeg ikke.

Jeg har indtil nu, ikke "ture" at kigge på C#.

Det vil jeg måske til, i stedet for VB.NET.

Men hvad er din vurdering af disse to sprog hvis man sammenligner dem.

Er syntaxen sværer i C#, eller hvad? Eller er det blot en tilvendings sag?
Avatar billede burningice Nybegynder
30. januar 2003 - 12:06 #7
bg>> syntaksen er knap så "læsningsvenlig" som vb... men når man får den lært er den mere effektiv... der skal mindre kode til at gøre det samme :)

eksempel - en lille løkke:

c#
for (int i = 0; i < 10; i++) {
  MsgBox(i.ToString());
}

vb.net
Dim i as Integer = 0;
For i = 0 to 10
  MsgBox(i.ToString())
Next

det mest trælse du nok kommer til at bakse med er ; som skal i enden af hver kodelinje (du behøver aldrig at bruge [enter]-tasten mere ;))
Avatar billede midas_dk Nybegynder
30. januar 2003 - 12:17 #8
C# syntaksen er som sådan ikke sværere - den er bare anderledes! Altså, jeg har både kodet i VB og C++ før, men har valgt at kode VB.NET af rent komfortmæssige grunde... For som cyberfessor siger, er VB-syntaks noget nemmere at gennemskue for et utrænet øje.

Men hvis du har VS.NET, er der faktisk også forskel på udviklingsmiljøet alt efter hvilket sprog du vælger - C#-folkene har umiddelbart været lidt smartere end VB.NET gutterne...
Avatar billede bambinogrande Nybegynder
30. januar 2003 - 12:21 #9
okay....... hvad mener du med at der er forskel på udviklingsmiljøet:

>> C#-folkene har umiddelbart været lidt smartere end VB.NET gutterne??????

Men når C# og VB.NET er kompileret til MSIL kode, er der så forskel på performance?
Avatar billede midas_dk Nybegynder
30. januar 2003 - 12:22 #10
Mht. tommelfingerregler: der er ikke rigtig nogen! Man kan vel sige at en funktion primært bruges til "udregninger", altså ting hvor du skal bruge et resultat - noget du skal bruge i din øvrige kode... Det kan jo sagtens være et dataset, en streng eller et tal. En sub udfører bare et stykke arbejde (f.eks. udskriver noget), hvor du på forhånd kender resultatet, eller som sådan ikke har noget at bruge det til. Makes sense?
Avatar billede bambinogrande Nybegynder
30. januar 2003 - 12:38 #11
Yes.......... det gør det.

Takker,-

Jeg må prøve mig frem. En ting der er cool er at man kan dele sin kode op i "kode-blokke", eller "moduller". Man laver bare en Sub eller en funktion og den kan man kalde i en hvilken som helst anden Sub ovs. Det er fed........

.NET rykker for vildt! Jeg har bare på fornemmelsen at det ikke er så udbredt endnu, og slet ikke her på eksperten.dk,- har jeg ret?
Avatar billede midas_dk Nybegynder
30. januar 2003 - 13:22 #12
Der er vist nok en lille smule forskel på performance, men det er KUN fordi det rent faktisk er muligt at lave mere effektiv kode i C# - men det er ikke nemt, så jeg tror ikke man lægger mærke til det på "vores" niveau...

Og nej, der er ikke så mange der søger hjælp herinde endnu, men jeg tror da bestemt at .NET er tilpas udbredt! Der er nok bare knap så mange, der bruger det på et professionelt plan, og derfor kommer man ikke så ofte ud for noget som man ikke kan finde hjælp til andetsteds...

Mht. subs og functions, så er det jo ikke ligefrem noget nyt ;-), men det ER da smart at man kan bygge sine egne klasser osv., så man kan udnytte alle de fede ting ved objektorientering osv.!
Avatar billede bambinogrande Nybegynder
30. januar 2003 - 13:27 #13
ja.......totalt.

Nej jeg ved godt at de også er der i asp 3.0 og <

Men det var ikke noget jeg brugte rigtigt! Hehe Call connection ovs.

Grimt..........
Avatar billede midas_dk Nybegynder
30. januar 2003 - 13:37 #14
de har såmænd altid været i ASP (altså vbscript)...
Avatar billede burningice Nybegynder
30. januar 2003 - 13:54 #15
bg>> som midas siger har funktioner og rutiner altid været et begreb i programmering... alle sprog (så godt som i hvert fald) har det, så det er ikke noget nyt. I .net er det dog meget mere udbredt end det var i asp, da de fleste havde tindens til at lave spaghetti kode (jeg gør det da også selv), hvor al koden står i en lang pløre :(

en anden dejlig ting ved .net (og andre oop-sprog) er nedarvinger, hvor man kan lave en klasse, og genbruge alt fra den i en ny klasse. og så selvfølgelig at du har adgang til alle de samme classes i en asp.net side, som når man udvikler et windåze-program... ingen begrænsninger her... :) selv en kontrol som datagriddet opfører sig så godt som på samme måde i asp.net og winforms. :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester