Laden...

Templates

Erstellt von Jamey vor 17 Jahren Letzter Beitrag vor 17 Jahren 2.700 Views
J
Jamey Themenstarter:in
85 Beiträge seit 2006
vor 17 Jahren
Templates

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

M
253 Beiträge seit 2006
vor 17 Jahren

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

M
253 Beiträge seit 2006
vor 17 Jahren

Hallo nochmal,

ich glaube hier wird es beschrieben.

Gruß

1.130 Beiträge seit 2005
vor 17 Jahren

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

J
Jamey Themenstarter:in
85 Beiträge seit 2006
vor 17 Jahren

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

1.130 Beiträge seit 2005
vor 17 Jahren

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

J
Jamey Themenstarter:in
85 Beiträge seit 2006
vor 17 Jahren

@.Kai

Gesucht und gefunden!........Funzt einwandfrei! 👍

Danke nochmal!

MfG
Jamey