2009-07-23 5 views
3

Ich habe eine Kontaktseite, wo es einen Datengeber von Menschen gibt und wenn Sie auf einen von ihnen klicken, erhalten Sie ein Kontaktformular, das ich an diese bestimmte Person senden möchte.Zugriff auf Daten von meiner SqlDataSource im Code hinter C# .net

Ich benutze sqldatasource dscontactemail, um Informationen über diese Person auf dem Kontaktformular zu erhalten, aber wie bekomme ich Informationen aus dscontactemail aus dem Code hinter für, wenn ich bereit bin, diese Mail zu senden?

Ich legte ein Formview auf der Seite, um das Bild der Person anzuzeigen, und ich kann bekommen, was ich von diesem dscontactemail mit <% # Eval ("E-Mail") zum Beispiel bekommen möchte, aber wie bekomme ich das aus dem Code dahinter?

Ich versuchte ein verstecktes Feld, aber es hat nicht funktioniert.

Gibt es noch andere Möglichkeiten, auf die SqlDataSource auf einer Seite aus dem Code zuzugreifen?

+0

von Datenquelle meinst du, wie Repeater/Daten-Grid? –

+0

@Spencer ist völlig richtig. Gewöhnen Sie sich an, SQLDataSource usw. zu verwenden. Verwenden Sie die Toolbox nicht! für alles andere als UI-Elemente :) –

Antwort

2

Zuerst sollten Sie SqlDataSource wirklich zu den im SqlClient-Namespace verfügbaren Klassen verwenden, also denken Sie daran.

Hier ist der Code es aber zu tun:

DataView dview = CType(yourSqlDataSource.Select(DataSourceSelectArguments.Empty), DataView); 
string str = ""; 

foreach(DataRow drow dview.Table.Rows) 
{ 
    str += drow("yourcol1").ToString() + "<br />"; 
} 
+0

Ich stimme dem Abschlussteil zu. Kein Fan von DataView. –

+0

Aber es gibt ein Problem, CType ist in VB nicht C# –

0

Hier finden Sie mehr als ausreichend:

dv = yourSqlDataSource.Select(DataSourceSelectArguments.Empty) as DataView; 

Und das Dataview separat abzufragen.

Wenn IntelliSense nicht Pickup yourSqlDataSource, dann einfach binden über die Findcontrol() der Steuerung, die die Datenquelle:

 SqlDataSource sdsPreStartDates = (SqlDataSource)DetailsView1.FindControl("sdsPreStartDates"); 
     if (sdsPreStartDates != null) 
     { 
      DataView dv1 = (DataView)sdsPreStartDates.Select(DataSourceSelectArguments.Empty); 
.. 
.. etc 
} 
Verwandte Themen