Toon posts:

[ASP.NET] Laatste record uit DB halen

Pagina: 1
Acties:
  • 127 views sinds 30-01-2008

Verwijderd

Topicstarter
Hallo allemaal,
Ik ben bezig met een website die in ASP is geschreven. Deze wil ik overzetten naar ASP.NET (C#)

Voordat iemand zich registreerd, moet gecontrolleerd worden of deze gebruiker al voorkomt in de DB (MS SQL 2000) Simpel procedure!

In ASP heb ik ooit zo geprogrammeerd.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<%
  Dim mydb, rs, sSQL

  gebruikersnaam = "Tim"
  wachtwoord = "1234"

  sSQL = "IF EXISTS(SELECT 'True' FROM gebruiker WHERE gebruikersnaam = '" & _
          gebruikersnaam & "') "
  sSQL = sSQL & "BEGIN "
  sSQL = sSQL & "SELECT  gebruikersnaam "
  sSQL = sSQL & "END ELSE BEGIN "
  sSQL = sSQL & "SELECT gebruikersnaam "
  sSQL = sSQL & "INSERT INTO gebruiker(gebruikersnaam , wachtwoord) VALUES('" & _
        gebruikersnaam & "','" & wachtwoord& "') "
  sSQL = sSQL & "END"

  Set db = Server.CreateObject("ADODB.Connection")
  db.Open test 
  Set rs = db.Execute(sSQL)

  If rs(0) = Then
     Response.Write "Uw gebruikersnaam wordt door iemand gebruikt, probeer opnieuw!"
  Else
    Response.Write "Gebruikersnaam geaccpeerd."
  End If
%>


Misschien is heel simpel dit in ASP.NET te overzetten, maar op een of ander reden lukt mij niet! Ik krijg een heleboel fout melding als ik dit code in ASP.NET zet.

Iemand een tip om hoe je dit in ASP.NET werkend krijgt?

Alvast bedankt

  • Swerfer
  • Registratie: Mei 2003
  • Laatst online: 14-02 17:02

Swerfer

Hmm...

Begin eerst eens te zoeken naar Stored Procedures. Hier zijn een aantal links te vinden.

Met stored procedures kan je veilig sql scripts uitvoeren die als procedure in de database worden opgeslagen.

Home Assistant | Unifi | LG 51MR.U44 | Volvo EX30 SMER+ Vapour Grey, trekhaak | SmartEVSE V3 | Cronos Crypto.com


Verwijderd

Topicstarter
Dit heb ik ook geprobeerd.

Ik heb zoiets:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
ALTER PROCEDURE InsertName
(
  @Student_NR varchar(25) 
 @wachtwoord varchar(50) 
)
AS
IF EXISTS(SELECT 'True' FROM StudentIDs WHERE Student_NR = @Student_NR)
BEGIN
  SELECT Student_NR 
END
ELSE
BEGIN
  SELECT 
  --INSERT into (gebruikersnaam, wachtwoord) VALUES(@Student_NR , @wachtwoord)
END


Maar om die connectie te maken in ASP.NET, dit lukt niet. Any Tips on that.

[ Voor 7% gewijzigd door Verwijderd op 11-06-2006 13:40 ]


  • Swerfer
  • Registratie: Mei 2003
  • Laatst online: 14-02 17:02

Swerfer

Hmm...

ASP.NET:
1
2
3
4
5
6
7
8
9
10
11
12
13
Dim objCommand1 As SqlCommand = New System.Data.SqlClient.SqlCommand()
Dim objConnection1 As SqlConnection = New System.Data.SqlClient.SqlConnection(ConfigurationManager.ConnectionStrings("DigitaleDLConnectionString").ConnectionString)
objCommand1 = New SqlCommand("ProcNaam", objConnection1)
objCommand1.CommandType = CommandType.StoredProcedure
objCommand1.Parameters.Clear()
objCommand1.Parameters.AddWithValue("@Student_NR", studentnummer)
objCommand1.Parameters.AddWithValue("@wachtwoord", wachtwoord)
objConnection1.Open()
data1 = objCommand1.ExecuteReader()
while data1.read()
    varStudentNummer = data1.item("Student_NR")
end while
objConnection1.Close()
Dit is een voorbeeld van het uitvoeren van een Stored Procedure. De connectionstring moet je in een web.config file zetten. Zoek in google maar eens op web.config en connectionstring...

Verder moet je je kennis van SQL eens wat bijschaven...

[ Voor 11% gewijzigd door Swerfer op 11-06-2006 14:01 ]

Home Assistant | Unifi | LG 51MR.U44 | Volvo EX30 SMER+ Vapour Grey, trekhaak | SmartEVSE V3 | Cronos Crypto.com


Verwijderd

Topicstarter
goede tip ik ben een beetje verder, maar de code om een stored procedure te aanroepen is toch in ASP geschreven, want Dim is onbekend zegt ASP.NET, kan ik het door string vervangen? of hoe doe je dit?

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 14:52

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op zondag 11 juni 2006 @ 14:05:
goede tip ik ben een beetje verder, maar de code om een stored procedure te aanroepen is toch in ASP geschreven, want Dim is onbekend zegt ASP.NET, kan ik het door string vervangen? of hoe doe je dit?
Je moet het in een method stoppen. VB.Net / C# werkt object georienteerd, je kan niet zo maar wat in een pagina droppen.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
Ja ik heb het als volgt:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        string objCommand1 as SqlCommand = New System.Data.SqlClient.SqlCommand();
        string objConnection1 as SqlConnection = New System.Data.SqlClient.SqlConnection(ConfigurationManager.ConnectionStrings("myconnctiestring").ConnectionString);
        objCommand1 = New SqlCommand("ProcNaam", objConnection1);
        objCommand1.CommandType = CommandType.StoredProcedure;
        objCommand1.Parameters.Clear();
        objCommand1.Parameters.AddWithValue("@Student_NR", studentnummer);
        objCommand1.Parameters.AddWithValue("@wachtwoord", wachtwoord);
        objConnection1.Open();
        data1 = objCommand1.ExecuteReader();
        while data1.read()
            varStudentNummer = data1.item("Student_NR");
        end while
        objConnection1.Close();
    }
}


Maar doet het niet! wat doe ik fout VB in C# gebruiken :? is Dim gelijk aan string in C#?

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 14:52

gorgi_19

Kruimeltjes zijn weer op :9

Nee, dim is declaratie van een variabele in VB.Net; C# heeft daarvoor een andere methodiek.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Swerfer
  • Registratie: Mei 2003
  • Laatst online: 14-02 17:02

Swerfer

Hmm...

Mijn voorbeeld was inderdaad in VB, je zou een voorbeeld moeten zoeken in C#.

Home Assistant | Unifi | LG 51MR.U44 | Volvo EX30 SMER+ Vapour Grey, trekhaak | SmartEVSE V3 | Cronos Crypto.com


Verwijderd

Topicstarter
ik heb wat in google gevonden http://www.google.com/sea...q=what+is+Dim+in+C%23&lr=.

ga verder zoeken, maar als jullie nog tips hebben om hoe je dit in C# doet, zijn jullie welkom.
Bedankt voor de reacties.

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 14:52

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op zondag 11 juni 2006 @ 14:36:
ik heb wat in google gevonden http://www.google.com/sea...q=what+is+Dim+in+C%23&lr=.

ga verder zoeken, maar als jullie nog tips hebben om hoe je dit in C# doet, zijn jullie welkom.
Bedankt voor de reacties.
Je weet toch wel hoe je een variabele declareert in C# :?

[ Voor 3% gewijzigd door gorgi_19 op 11-06-2006 14:39 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
Ja :) , mijn fout was indaardat dat ik alles in aspx bestand had gekopieerd :X.

nog wat tips voor mensen met hetzelfde vraag:

http://www.google.com/sea...red+procedure+in+C%23&lr=

ga verder zoeken, bedankt

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 14:52

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op zondag 11 juni 2006 @ 14:44:
Ja :) , mijn fout was indaardat dat ik alles in aspx bestand had gekopieerd :X.

nog wat tips voor mensen met hetzelfde vraag:

http://www.google.com/sea...red+procedure+in+C%23&lr=

ga verder zoeken, bedankt
Je hoeft in dit geval ook helemaal geen SP te gebruiken; parametrized query kan ook? Daarnaast: je verwacht 1 returnwaarde, waardoor een executescalar ook werkt ipv een .read . Sowieso is het imho ook netter om de boel in een try-finally te wrappen, mocht je database op z'n muil gaan (en je dus anders je connectionpool opblaast) en je datareader expliciet te sluiten.

[ Voor 29% gewijzigd door gorgi_19 op 11-06-2006 14:49 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
goeie tip en ik heb al wat gevonden met parametrized query

http://gathering.tweakers.net/forum/list_messages/1138428

  • whoami
  • Registratie: December 2000
  • Laatst online: 21:53
Stored procedures hebben hier nu eens helemaal niks mee te maken; je kan het hier zowel met SP's als met parametrized queries gaan oplossen.

In eerste instantie zou ik zeggen: loop eerst eens even een paar ASP.NET en C# tutorials na, want ASP en ASP.NET zijn helemaal niet met elkaar te vergelijken.
Als je dat gedaan hebt, en de basis van ASP.NET onder de knie hebt, kan je eens kijken naar de verschillende methodes van beveiliging die ASP.NET voorziet. In jouw geval kan je bv eens kijken naar 'Forms Authentication'.
Echter, je zal ook wel nog steeds die DB moeten query-en natuurlijk, maar de rest van de beveiliging gaat dan redelijk eenvoudig.

Voor andere tips ivm ASPNET kan je ook eens in dit topic kijken:
[rml][ ASP.NET] Webdev tips[/rml]

[ Voor 21% gewijzigd door whoami op 11-06-2006 22:17 ]

https://fgheysels.github.io/

Pagina: 1

Dit topic is gesloten.