1. Der Unterschied zwischen <%=...%> und <%#... %>:
Antwort: <%=...%> wird aufgerufen, wenn das Programm ausgeführt wird, und <%#... %> wird nach der DataBind()-Methode aufgerufen.
2. Welche Arten von Daten empfängt das Steuerelement?
Antwort: Zu den Steuerelementen, die Bind empfangen, gehören im Allgemeinen Sammlungssteuerelemente wie DropDownList, DataList, DataGrid und ListBox. Die wichtigsten gebündelten Steuerelemente sind ArrayList, Hashtable, DataView und DataReader. Wir können es in Zukunft richtig machen und werden es auch tun Es gibt keinen Fehler, dass die DataTable gebunden ist :)
3. DataBind, das System wird die erhaltenen Daten standardmäßig in String umwandeln. Wie konvertiert man sie in andere Typen?
DataBinder.Eval(Container.DataItem,"Konvertierungstyp","Format")
Das letzte „Format“ ist optional, und im Allgemeinen müssen Sie sich darüber keine Gedanken machen. Container.DataItem ist ein gebündeltes Datenelement, und „Konvertierungstyp“ bezieht sich auf Dinge wie Ganzzahl, Zeichenfolge und Boolescher Wert.
4. Hauptnamespace:
<% @ Import Namespace="System.Data" %> Wird bei der Datenverarbeitung verwendet
<% @ Import Namespace="System.Data.ADO" % > Wird bei Verwendung von ADO.net verwendet;
<% @ Import Namespace="System.Data.SQL" %> Nur SQL Server-Datenbank
<% @ Import Namespace="System.Data.XML" %> Sie müssen sich nicht ansehen, was zur Verarbeitung von XML verwendet wird
<% @ Import Namespace="System.IO" %> Wird bei der Verarbeitung von Dateien verwendet
<% @ Import Namespace="System.Web.Util" %> Jeder wird es beim Versenden von E-Mails verwenden
<% @ Import Namespace="System.Text" %> Allgemeine Eigenschaften und Methoden von 5.Connections (SQLConection oder ADOConnection) werden beim Codieren von Text verwendet
:
|. ConnectionString Ruft die Anweisung zum Herstellen einer Verbindung zur Datenbank ab oder legt diese fest
|. ConnectionTimeout ruft die maximale Zeit für die Verbindung zur Datenbank ab, die auch die Timeout-Zeit ist, oder legt diese fest
|. DataBase ruft den Namen der Datenbank ab, die auf dem Datenbankserver geöffnet werden soll, oder legt diesen fest
|. DataSource erhält oder setzt DSN, jeder kennt es :)
|. Passwort Passwort abrufen oder festlegen
|. UserID ruft den Anmeldenamen ab oder legt ihn fest
|. State ruft den Status der aktuellen Verbindung ab
|. Open() öffnet die Verbindung
|. Close() schließt die Verbindung
|. Clone() Eine Verbindung klonen. (Haha, Schafe können sich verbinden und ich auch)
Beispiel:
SQLConnection myConnection = new SQLConnection();
myConnection.DataSource = "mySQLServer";
myConnection.Password = "";
myConnection.UserID = "sa";
myConnection.ConnectionTimeout = 30;
myConnection.Open();
myConnection.Database = "Nordwind";
myConnection.IsolationLevel = IsolationLevel.ReadCommitted
6. Häufig verwendete Methoden und Eigenschaften von Command
|. ActiveConnection Ruft Verbindungen ab oder legt diese fest
|. CommandText führt die SQL-Anweisung oder die gespeicherte Prozedur (StoredProcedure) aus
|. CommandTimeout Die maximale Ausführungszeit
|. CommandType Es gibt drei Arten von Befehlsoperationen (StoredProcedure, Text, TableDirect), der Standardwert ist Text
|. Parameter, die beim Ausführen gespeicherter Prozeduren verwendet werden
|. Execute() führt SQL-Anweisungen oder gespeicherte Prozeduren aus
|. ExecuteNonQuery() Wie oben, mit dem Unterschied, dass kein Datensatz zurückgegeben wird
|. Clone() Klonbefehl
Beispiel:
string mySelectQuery = "SELECT * FROM Kategorien ORDER BY CategoryID";
stringmyConnectString="userid=sa;password=;database=northwind;server=mySQLServer";
SQLCommand myCommand = new SQLCommand(mySelectQuery);
myCommand.ActiveConnection = new SQLConnection(myConnectString);
myCommand.CommandTimeout = 15;
myCommand.CommandType = CommandType.Text;< /FONT >
7. Zwei Methoden zum Öffnen und Schließen der Datenbank:
1.MyConnection.Open(); //Verbindung öffnen
MyConnection.Close();
2.MyCommand.ActiveConnection.Open();
MyCommand.ActiveConnection.Close()
8. Verwenden Sie DataSet, um Daten in der Datenbank hinzuzufügen, zu ändern und zu löschen
a.Daten hinzufügen
DataRow dr=MyDataSet.Tables["UserList"].NewRow();
dr["UserName"] = "Wöchentliche Nachrichten";
dr["ReMark"] = "100";
dr["Comment"] = "Wunderschönes MM";
MyDataSet.Tables.Rows.Add(dr);
b
MyDataSet.Tables["UserList"].Rows[0]["UserName"]="Brother Flying Knife";
c
MyDataSet.Tables["UserList"],Rows[0].Delete();
d.Daten wiederherstellen
if(MyDataSet.HasErrors)
{
MyDataSet.RejectChanges();
}
e. Ermitteln Sie, ob das DataSet geändert wurde
if(MyDataSet.HasChanges)
{
//Code speichern
}anders{
// Da keine Änderungen vorgenommen werden, ist kein Speichern erforderlich, um Zeit zu sparen.
}
f. Datenbank aktualisieren
MyComm.Update(MyDataSet); //Alle Tabellen in der Datenbank aktualisieren
MyComm.Update(MyDataSet,"UserList"); //Eine Tabelle aktualisieren
9.DataGrid implementiert die Paging-Funktion
AllowPaging="True" //Bezieht sich auf das Zulassen von Paging. Dies ist das Wichtigste. Damit können wir paginieren.
PageSize="5" //Gibt die Anzahl der auf jeder Seite angezeigten Datensätze an. Wenn nicht geschrieben, wird standardmäßig 10 verwendet.
PagerStyle-HorizontalAlign="Right" //Gibt die Positionierung der Facettenanzeige an, der Standardwert ist Left
PagerStyle-NextPageText="Next page" //Ändern <> zur vorherigen Seite und zur nächsten Seitenzeichenfolge
PagerStyle-PrevPageText="Vorherige Seite"
PagerStyle-Mode="NumericPages" //Ändern Sie <> auf 123 Digitalanzeige
10. Zeigen Sie an, wie viele Seiten es insgesamt gibt und auf welcher Seite sich der Bericht gerade befindet
Die aktuelle Seite ist: <font color=red><%=DataGrid1.CurrentPageIndex+1%></font><br>
Die Gesamtzahl der Seiten beträgt: <font color=red><%=DataGrid1.PageCount%></font><br>
11.Personalisiertes Paging
„Close Contact ASP.Net (14)“ von Programmer's Basecamp hat den vollständigen Code
12. Um die Seite auf einen gültigen Zustand zurückzusetzen
IValidatorwert;
foreach(val in Validatoren)
{
Val.IsValid = true;
}
13. Führen Sie die gesamte Verifizierungssequenz erneut aus
IValidatorwert;
foreach(val in Validatoren)
{
Val.Validate();
}
14. Deaktivieren Sie die Kundenüberprüfung
<%@ Page Language="c#" clienttarget=downlevel %>
15.Verwendung von Repeater-, DataList- und DataGrid-Steuerelementen“
Diese Steuerelemente können mehrere gängige Webanwendungsszenarien vereinfachen, darunter Berichte, Einkaufswagen, Produktlisten und Abfragen
Ergebnisse und Navigationsmenü. Repeater ist das einzige Steuerelement, das HTML-Fragmente in seiner Vorlage zulässt.
16. Der Unterschied zwischen Server.Execute("another.aspx") und Server.Transfer("another.aspx"):
Execute überträgt die Übertragung von der aktuellen Seite zur angegebenen Seite und gibt die Ausführung zur aktuellen Seite zurück
Bei der Übertragung wird die Ausführung vollständig auf die angegebene Seite übertragen
17. Die XML-Datei kann ein eigenes Schema haben oder in der *.xsl-Datei vorhanden sein, aber die Informationen müssen im Stammknoten des XML-Dokuments über das xmlns-Attribut angegeben werden, wie unten gezeigt:
<rootelement xmlns="x-schema:scheduledSchema.xsl">
18. Lesen von XML-Dateien
FileStream myfs=new Filestream(Server.MapPath("xmldtagrid.xml"),FileMode.Open,FileAccess.Read);
StreamReader myreader=new StreamReader(myfs);
DataSet myds=new DataSet();
myds.ReadXml(myreader);
19. Regelmäßige Ausdruckssteuerung RegularExpressionValidator
Symbolbedeutung
^ Geben Sie an, wo die Prüfung beginnen soll
$ gibt das Ende der Prüfung an
[] Prüft, ob der eingegebene Wert mit einem der Zeichen in eckigen Klammern übereinstimmt
W ermöglicht die Eingabe eines beliebigen Wertes
d{} „d“ gibt an, dass der Eingabewert eine Zahl ist, {} gibt die Anzahl der Vorkommen des angegebenen Datentyps an
+ gibt an, dass dem überprüften Ausdruck ein oder mehrere Elemente hinzugefügt werden
Beispiel: E-Mail-Format (hat @-Zeichen und endet mit .com/.net/.org/.edu)
validationexpression="^[w-]+@[w-]+.(com|net|org|edu)$"
20. Wichtige Anweisungen für Datenoperationen im DataGrid-Steuerelement:
Eigenschaft: DataKeyField="userid" //Benutzer-ID als Primärschlüssel der Tabelle festlegen. Der Wert dieses Felds kann nicht in der Datenbank aktualisiert werden. Es ist am besten, den Primärschlüssel der Tabelle als Primärschlüssel des DataGrid festzulegen.
SqlCommand.Parameters["@userid"].Value=dg.DataKeys[(int)e.Item.ItemIndex]; //Den Primärschlüssel der zu aktualisierenden Zeile abrufen (den Primärschlüsselwert der aktuell ausgewählten Zeile zuweisen). Der Befehl ist ein Parameter
SqlCommand.Parameters["@fname"].Value=((TextBox)e.Item.Cells[2].Controls[0]).Text; //Weisen Sie den geänderten Zeilenwert dem Parameter zu
21. Benutzerdefinierte Steuerelemente:
a. Benutzerkontrolle (identisch mit der ASP-Erstellungsseite)
(I). Erstellen Sie eine Seite, ziehen Sie das Steuerelement hinein und legen Sie Eigenschaften/Methoden fest. Die @Control-Direktive in <% @Control Language="C#" Debug="True" %> enthält den Steuercode
(II) Als *.ascx-Datei speichern, z. B. a.ascx.
(III).Verwenden Sie: Header< %@Register Tagprefix="MyFirstControl" TagName="MyLbl" Src="a.axcs" %>
//Tagprefix ist das Präfix des Steuerelements, wie ASP:TextBox in ASP
//TagName wird verwendet, um den Namen des benutzerdefinierten Steuerelements anzugeben
//Src gibt die Quelle der Steuerdatei an
Body:<MyFirstControl:MyLbl runat="Server" id="AllMine" MyText="Successful" />
b. Erstellen Sie benutzerdefinierte Steuerelemente mit C#
(I). Erstellen Sie eine reine Codedatei, erben Sie die Basisklasse Control und speichern Sie sie als *.cs, z. B. a.cs.
(II). Kompilieren Sie den Code, um eine Assembly zu generieren: csc /t:library /r:System.dll,System.Web.Dll a.cs
//library weist den C#-Compiler an, eine Assembly zu generieren
// /r:System.dll System.Web.Dll weist den C#-Compiler an, auf die angegebene Assembly zu verweisen
(III). Platzieren Sie die generierte DLL-Datei im bin-Verzeichnis
(IV).Verwenden Sie: <% @Register TagPrefix="Mine" Namespace="MyOwnControls" Assembly="a" %>
22. Vorsichtsmaßnahmen für zusammengesetzte Kontrollen:
öffentliche Klasse MyCompositin:Control,INamingContainer //INamingContainer: Wenn es mehrere Instanzen dieses Steuerelements auf der Seite gibt, kann diese Schnittstelle jeder {}-Instanz ein eindeutiges Flag geben
this.EnsureChildControls();//Gibt an, dass das zusammengesetzte Steuerelement „Alle“ sein wird Untergeordnete Steuerelemente werden auf der Seite gerendert. Diese Methode prüft, ob das Serversteuerelement untergeordnete Steuerelemente vom Typ „
CreateChildControls“
enthält
23.Wann werden Button/LinkButton/ImageButton/HyperLink verwendet?
1.Button und ImageButton werden verwendet, um Daten an den Server zurückzusenden.
2.Hyperlink wird zum Navigieren zwischen Seiten verwendet
3.LinkButton wird verwendet, um Daten auf dem Server zu speichern oder auf Daten auf dem Server zuzugreifen
24. Tracking und Debugging
Schiene:
1. Ablaufverfolgung auf Seitenebene: Fügen Sie die folgenden Seitenanweisungen am Anfang der Seite ein: <%@ Page Trace="True" TraceMode="SortByCategory/SortByTime" %>
Benutzerdefinierte Nachricht:
Trace.Write("Hier ist die anzuzeigende Zeichenfolge");
Trace.Warn("Hier ist die anzuzeigende Zeichenfolge"); //Wie Trace.Write, außer dass die Schriftart rot ist
Prüfen Sie, ob Tracking verwendet wird
Beispiel: if(Trace.IsEnabled) { Trace.Warn("Tracing ist aktiviert")}
2. Ablaufverfolgung auf Anwendungsebene: <trace aktiviert="true" pageOutput="true"/> im Abschnitt <System.Web> der Datei Web.config
25. Cache einrichten:
1.Ausgabe-Caching:
I. Seiteneinstellungen: Fügen Sie <%@ OutputCache Duration="120" VaryByParam="none" %> am Anfang der Seite hinzu, die zwischengespeichert werden muss
Hinweis: Der Ausgabeinhalt bleibt innerhalb der letzten zwei Minuten nach der Anforderung dieser Seite unverändert.
II. Programmatische Einstellungen:
Verwenden Sie hauptsächlich Methoden unter der Klasse System.Web.HttpCachePolicy
(1). Response.Cache.SetExpires(DateTime.Now.AddSeconds(120)); //Die Ablaufzeit muss in dieser Methode angegeben werden, beispielsweise beträgt dieser //Satz zwei Minuten
(2). Response.Cache.SetExpires(DateTime.Now.AddSeconds(120));
Response.Cache.SetSlidingExpiration(true); // „Anpassbares Ablaufdatum“ wird hauptsächlich für Situationen verwendet, in denen die Anzahl der Besuche zunächst groß ist, dann aber ausgeglichen ist
Funktion: Die erste Zeile legt die Cache-Ablaufzeit fest und die zweite Zeile aktiviert den gleitenden Ablauf (einstellbarer Ablauf).
2. Datencache:
(1).DataView mySource; (2).Wert zu mySource zuweisen;
(3).Cache["myCache"]=mySource; (4).mySource=(DataView)Cache["myCache"]
26. Bereitstellung: Kopieren Sie die Anweisung direkt auf den Produktserver, um sie zu kopieren: XCOPY <source_path> <destination_path> //XOPY akzeptiert nur physische Pfade, keine virtuellen Pfade