24. januar 2003 - 10:12Der 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
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
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
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 }
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...
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?
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?
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.!
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. :)
Synes godt om
Ny brugerNybegynder
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.