1. La diferencia entre <%=...%> y <%#... %>:
Respuesta: <%=...%> se llama cuando se ejecuta el programa y <%#... %> se llama después del método DataBind()
2. ¿Qué tipos de datos recibe el control?
Respuesta: Los controles que reciben Bind generalmente incluyen controles de colección como DropDownList, DataList, DataGrid y ListBox. Los principales que se incluyen son ArrayList, Hashtable, DataView y DataReader. Podemos hacerlo bien en el futuro, y lo haremos. No habrá ningún error al indicar que DataTable está vinculado :)
3. DataBind, el sistema establecerá de forma predeterminada los datos obtenidos en String, ¿cómo convertirlos a otros tipos?
DataBinder.Eval(Container.DataItem,"tipo de conversión","formato")
El último "formato" es opcional y, por lo general, no es necesario preocuparse por él. Container.DataItem es un elemento de datos incluido y el "tipo de conversión" se refiere a cosas como entero, cadena y booleano.
4. Espacio de nombres principal:
<% @ Import Namespace="System.Data" %> Se utiliza al procesar datos
<% @ Import Namespace="System.Data.ADO" % > Se utiliza cuando se utiliza ADO.net;
<% @ Import Namespace="System.Data.SQL" %> Solo base de datos de SQL Server
<% @ Import Namespace="System.Data.XML" %> No es necesario mirar qué se utiliza para procesar XML
<% @ Import Namespace="System.IO" %> Se utiliza al procesar archivos
<% @ Import Namespace="System.Web.Util" %> Todos lo usarán al enviar correos electrónicos
<% @ Import Namespace="System.Text" %> Las propiedades y métodos comunes de 5.Conexiones (SQLConection o ADOConnection) se utilizan al codificar texto
:
| ConnectionString Obtiene o establece la declaración para conectarse a la base de datos.
| ConnectionTimeout obtiene o establece el tiempo máximo para conectarse a la base de datos, que también es el tiempo de espera.
| DataBase obtiene o establece el nombre de la base de datos que se abrirá en el servidor de la base de datos.
DataSource obtiene o configura DSN, todos lo conocen :)
Contraseña Obtener o establecer contraseña
UserID obtiene o establece el nombre de inicio de sesión
| Estado obtiene el estado de la conexión actual
| Open() abre la conexión
| Close() cierra la conexión
| Clonar() Clonar una conexión. (Jaja, las ovejas pueden conectarse y yo también)
Ejemplo:
SQLConnection myConnection = nueva SQLConnection();
myConnection.DataSource = "mySQLServer";
miConexión.Contraseña = "";
myConnection.UserID = "sa";
myConnection.ConnectionTimeout = 30;
miConexión.Open();
myConnection.Database = "viento del norte";
myConnection.IsolationLevel = IsolationLevel.ReadCommitted
6. Métodos y propiedades de comando comúnmente utilizados
ActiveConnection Obtiene o establece conexiones
| CommandText ejecuta la instrucción SQL o el nombre del procedimiento almacenado (StoredProcedure)
| CommandTimeout El tiempo máximo de ejecución
CommandType Hay tres tipos de operaciones de comando (StoredProcedure, Text, TableDirect), el valor predeterminado es Text.
| Parámetros utilizados al operar procedimientos almacenados
| Execute() ejecuta sentencias SQL o procedimientos almacenados
| ExecuteNonQuery() Igual que el anterior, la diferencia es que no devuelve un conjunto de registros.
Clonar() Comando Clonar
Ejemplo:
string mySelectQuery = "SELECCIONAR * DE Categorías ORDENAR POR ID de categoría";
stringmyConnectString="ID de usuario=sa;contraseña=;base de datos=northwind;servidor=mySQLServer";
SQLCommand miCommand = nuevo SQLCommand(mySelectQuery);
myCommand.ActiveConnection = nueva SQLConnection(myConnectString);
myCommand.CommandTimeout = 15;
myCommand.CommandType = CommandType.Text;< /FONT >
7. Dos métodos para abrir y cerrar la base de datos:
1.MyConnection.Open(); //Abre la conexión
MiConexión.Cerrar();
2.MiComando.ActiveConnection.Open();
MyCommand.ActiveConnection.Close()
8. Utilice DataSet para agregar, modificar y eliminar datos en la base de datos
a.Agregar datos
DataRow dr=MyDataSet.Tables["UserList"].NewRow();
dr["UserName"] = "Noticias semanales";
dr["ReMark"] = "100";
dr["Comentario"] = "Hermoso MM";
MyDataSet.Tables.Rows.Add(dr);
modificar datos.
MyDataSet.Tables["UserList"].Rows[0]["UserName"]="Brother Flying Knife";
c.
MyDataSet.Tables["UserList"],Rows[0].Delete();
d.Restaurar datos
si(MyDataSet.HasErrors)
{
MyDataSet.RejectChanges();
}
e. Detectar si el conjunto de datos ha sido modificado.
si(MyDataSet.HasChanges)
{
//guardar código
}demás{
// Como no hay cambios, no es necesario guardar para ahorrar tiempo.
}
f. Actualizar la base de datos
MyComm.Update(MyDataSet); //Actualiza todas las tablas en la base de datos.
MyComm.Update(MyDataSet,"UserList"); //Actualizar una tabla
9.DataGrid implementa la función de paginación
AllowPaging="True" //Se refiere a permitir la paginación, esto es lo más importante. Con él podemos paginar.
PageSize="5" //Especifica el número de registros que se muestran en cada página. Si no se escribe, el valor predeterminado será 10.
PagerStyle-HorizontalAlign="Derecha" //Especifica la posición de la visualización facetada, el valor predeterminado es Izquierda
PagerStyle-NextPageText="Página siguiente" //Cambiar <> a las cadenas de la página anterior y de la página siguiente
PagerStyle-PrevPageText="Página anterior"
PagerStyle-Mode="NumericPages" //Cambiar <> a 123 pantalla digital
10. Muestre cuántas páginas hay en total y en qué página se encuentra actualmente el informe.
La página actual es: <font color=red><%=DataGrid1.CurrentPageIndex+1%></font><br>
El número total de páginas es: <font color=red><%=DataGrid1.PageCount%></font><br>
11.Paginación personalizada
El "Contacto cercano ASP.Net (14)" del Basecamp del programador tiene el código completo
12. Para restablecer la página a un estado válido
Valor del validador;
foreach(val en validadores)
{
Val.IsValid = verdadero;
}
13. Vuelva a ejecutar toda la secuencia de verificación.
Valor del validador;
foreach(val en validadores)
{
Val.Validar();
}
14. Deshabilitar la verificación del cliente
<%@ Page Language="c#" clienttarget=nivel inferior %>
15.Uso de los controles Repetidor, DataList y DataGrid"
Estos controles pueden simplificar varios escenarios comunes de aplicaciones web, incluidos informes, carritos de compras, listas de productos y consultas.
Menú de resultados y navegación. El repetidor es el único control que permite fragmentos HTML en su plantilla.
16. La diferencia entre Server.Execute("another.aspx") y Server.Transfer("another.aspx"):
Ejecutar transferencias desde la página actual a la página especificada y devolver la ejecución a la página actual
La transferencia consiste en transferir completamente la ejecución a la página especificada.
17. El archivo XML puede tener su propio esquema o puede existir en el archivo *.xsl, pero la información debe especificarse en el nodo raíz del documento xml a través del atributo xmlns, como se muestra a continuación:
<rootelement xmlns="x-schema:scheduledSchema.xsl">
18. Lectura de archivos XML
FileStream myfs=new Filestream(Server.MapPath("xmldtagrid.xml"),FileMode.Open,FileAccess.Read);
StreamReader milector=nuevo StreamReader(myfs);
Conjunto de datos myds=nuevo conjunto de datos();
myds.ReadXml(milector);
19. Control de expresiones regulares RegularExpressionValidator
Símbolo Significado
^ Especifique dónde comenzar la verificación.
$ especifica el final del cheque
[] Comprueba si el valor ingresado coincide con uno de los caracteres entre corchetes
W permite introducir cualquier valor
d{} "d" especifica que el valor de entrada es un número, {} indica el número de apariciones del tipo de datos especificado
+ indica que se agregarán uno o más elementos a la expresión que se está verificando
Ejemplo: formato de correo electrónico (tiene signo @ y termina en .com/.net/.org/.edu)
expresión de validación="^[w-]+@[w-]+.(com|net|org|edu)$"
20. Declaraciones importantes para operaciones de datos en el control DataGrid:
Propiedad: DataKeyField="userid" //Establezca el ID de usuario como la clave principal de la tabla. El valor de este campo no se puede actualizar en la base de datos. Es mejor establecer la clave principal de la tabla como la clave principal de DataGrid.
SqlCommand.Parameters["@userid"].Value=dg.DataKeys[(int)e.Item.ItemIndex] //Recuperar la clave principal de la fila que se actualizará (asigne el valor de la clave principal de la fila seleccionada actualmente a el comando es un parámetro
SqlCommand.Parameters["@fname"].Value=((TextBox)e.Item.Cells[2].Controls[0]).Text //Asigna el valor de la fila modificada al parámetro;
21. Controles personalizados:
a. Control de usuario (igual que la página de creación de ASP)
(I). Cree una página, arrastre el control y establezca propiedades/métodos. La directiva @Control en <% @Control Language="C#" Debug="True" %> para definir esta página contendrá el código de control.
(II) Guárdelo como archivo *.ascx, como por ejemplo a.ascx.
(III).Uso: Encabezado< %@Register Tagprefix="MyFirstControl" TagName="MyLbl" Src="a.axcs" %>
//Tagprefix es el prefijo del control, como ASP:TextBox en ASP
//TagName se utiliza para especificar el nombre del control personalizado
//Src especifica la fuente del archivo de control
Cuerpo:<MyFirstControl:MyLbl runat="Servidor" id="AllMine" MyText="Exitoso" />
b. Crear controles personalizados usando C#
(I). Cree un archivo de código puro, herede la clase base Control y guárdelo como *.cs, como a.cs.
(II). Compile el código para generar un ensamblado: csc /t:library /r:System.dll,System.Web.Dll a.cs.
//la biblioteca le dice al compilador de C# que genere un ensamblado
// /r:System.dll System.Web.Dll le dice al compilador de C# que haga referencia al ensamblado especificado
(III). Coloque el archivo dll generado en el directorio bin.
(IV).Uso: <% @Register TagPrefix="Mine" Namespace="MyOwnControls" Assembly="a" %>
22. Precauciones para controles compuestos:
clase pública MyCompositin:Control,INamingContainer //INamingContainer: si hay varias instancias de este control en la página, esta interfaz puede darle a cada {} instancia un indicador único
this.EnsureChildControls();// Indica que el control compuesto será Todo Los controles secundarios se representan en la página. Este método verifica si el control del servidor contiene controles secundarios
CreateChildControls.
23. ¿Cuándo se utilizan Button/LinkButton/ImageButton/HyperLink?
1.Button e ImageButton se utilizan para pasar datos al servidor.
2.El hipervínculo se utiliza para navegar entre páginas.
3.LinkButton se utiliza para guardar datos en el servidor o acceder a datos en el servidor.
24. Seguimiento y depuración
pista:
1. Seguimiento a nivel de página: incluya las siguientes instrucciones de página al principio de la página <%@ Page Trace="True" TraceMode="SortByCategory/SortByTime" %>
Mensaje personalizado:
Trace.Write("Aquí está la cadena que se mostrará");
Trace.Warn("Aquí está la cadena que se mostrará"); //Igual que Trace.Write, excepto que la fuente es roja
Compruebe si se utiliza el seguimiento
Ejemplo: if(Trace.IsEnabled) { Trace.Warn("El seguimiento está habilitado")}
2. Seguimiento a nivel de aplicación: <trace enable="true" pageOutput="true"/> en la sección <System.Web> del archivo Web.config
25. Configurar caché:
1.Almacenamiento en caché de salida:
I. Configuración de página: agregue <%@ OutputCache Duration="120" VaryByParam="none" %> al principio de la página que debe almacenarse en caché
Nota: El contenido de salida permanece sin cambios dentro de los últimos dos minutos después de solicitar esta página.
II. Configuración programática:
Utilice principalmente métodos de la clase System.Web.HttpCachePolicy
(1). Response.Cache.SetExpires(DateTime.Now.AddSeconds(120)); // El tiempo de vencimiento debe especificarse en este método, por ejemplo, esta // oración es de dos minutos.
(2).Respuesta.Cache.SetExpires(DateTime.Now.AddSeconds(120));
Response.Cache.SetSlidingExpiration(true); //"Caducidad ajustable" se utiliza principalmente para situaciones en las que el número de visitas es grande al principio, pero luego el número de visitas //es equilibrado
Función: la primera línea establece el tiempo de caducidad de la caché y la segunda línea activa la caducidad deslizante (caducidad ajustable).
2. Caché de datos:
(1).DataView mySource; (2).Asignar valor a mySource;
(3).Cache["myCache"]=mySource; (4).mySource=(DataView)Caché["myCache"]
26. Implementación: Copie directamente al servidor del producto para copiar la declaración: XCOPY <source_path> <destination_path> //XOPY solo acepta rutas físicas, no rutas virtuales