Hallo Leute!
Ich habe ein GridView mit verschiedenen Datenspalten und einer HyperLinkspalte! Über einen Klick auf einem Hyperlink, möchte ich den aktuellen Datensatz ermitteln und auf einer anderen Seite nur diesen einen Datensatz angezeigt bekommen!
Gibt es eine Möglichkeit, dass er mir auf der anderen Seite, zur
Überprüfung, z.B. die ausgewählte "ID" des Datensatzes anzeigt?
Wie müßte ich denn mein SQL-Statement auf der 2. Seite aufbauen (oder was man da noch braucht?), damit er mir auch nur den einen Datensatz anzeigt?
Mein Hyperlink-Template sieht so aus...
<asp:HyperLink ID="hpTest" runat="server"
NavigateUrl='<%# Eval("ID", "~/Detail.aspx?ID={0}") %>' Style="color: red">anzeigen</asp:HyperLink>
Bin dankbar für jede Hilfe, da ich gerade erst in ASP.NET eingestiegen bin!
MfG
Jamey
Gib doch einfach die ID auf die 2 Seite mit!
Der Hyperlink in der GriedView hat die Eigenschaft Daten (DataNavigateUrlField...usw)
mit
Request.Params["name"];
kannst du den Wert auf der 2 Seite wieder holen.
Für die andere Frage schlage ich dir ein Video Tutorial vor, z.B auf ASP.NET wird es sehr oft beschrieben 😉
Gruß Patrick
Hallo Jamey,
das Attribut NavigateUrl hast Du schon richtig belegt. Der Wert wird somit per GET an die andere Seite übergeben. Auf dieser Seite kannst Du nun mit Request.QueyString["ID"] die ID des Datensatzes auslesen (Achtung: Berücksichtigen das die ID nicht übergeben wird.)
Die SQL Anweisung müsste dann wie folgt aussehen:
SELECT * FROM Tabelle WHERE ID = @ID
Bei der nächsten Erstellung eines neues Threads bitte Punkt 3 in Wie poste ich richtig beachten
Erstmal danke für eure Hilfe!
Ich habe jetzt zu Testzwecken durch dieses Request.QueyString["ID"], die ID in einem Label mir anzeigen lassen! Klappt auch wunderbar, aber wenn ich nun das SQL-Statement anpasse, gibt er mir beim Ausführen nachher den Fehler
Die "@ID" - Skalarvariable muss deklariert werden.
Mein Code sieht wie folgt aus....
private const string Constr = "server=localhost;Trusted_Connection=yes;database=test";
string id;
protected void Page_Load(object sender, EventArgs e)
{
id = Request.Querystring["ID"];
_LadeThemen();
}
private void _LadeThemen()
{
SqlConnection conn = new SqlConnection(Constr);
string Sql = "SELECT Thema, Anzahl, Termin FROM Themen WHERE ID = @id";
SqlCommand cmd = new SqlCommand(Sql, conn);
conn.Open();
SqlDataReader reader = cmd.ExecuteReader();
DataList1.DataSource = reader;
DataList1.DataBind();
conn.Close();
}
In der Zeile "SqlDataReader reader = cmd.ExecuteReader();" hakt es wohl!
MfG
Jamey
Hallo Jamey,
Original von Jamey
In der Zeile "SqlDataReader reader = cmd.ExecuteReader();" hakt es wohl!
Du musst den entsprechenden Wert natürlich noch übergeben. Bitte hierzu die Suche benutzen.
-> SQL Parameter
-> parametisierte Abfragen/Anweisungen
@.Kai
Gesucht und gefunden!........Funzt einwandfrei! 👍
Danke nochmal!
MfG
Jamey