1. <%=...%>와 <%#... %>의 차이점:
답변: <%=...%>는 프로그램이 실행될 때 호출되고, <%#... %>는 DataBind() 메소드 다음에 호출됩니다.
2. 컨트롤은 어떤 유형의 데이터를 수신합니까?
답변: Bind를 수신하는 컨트롤에는 일반적으로 DropDownList, DataList, DataGrid 및 ListBox와 같은 컬렉션 컨트롤이 포함됩니다. 번들로 제공되는 주요 컨트롤은 ArrayList, Hashtable, DataView 및 DataReader입니다. DataTable이 바인딩되어 있으면 오류가 발생하지 않습니다.)
3. DataBind, 시스템은 얻은 데이터를 문자열로 기본 설정합니다. 이를 다른 유형으로 변환하는 방법은 무엇입니까?
DataBinder.Eval(Container.DataItem,"변환 유형","형식")
마지막 "형식"은 선택 사항이며 일반적으로 걱정할 필요가 없습니다. Container.DataItem은 번들 데이터 항목이고 "변환 유형"은 Integer, String 및 Boolean과 같은 항목을 나타냅니다
.
<% @ Import Namespace="System.Data" %> 데이터 처리 시 사용
<% @ Import Namespace="System.Data.ADO" % > ADO.net을 사용할 때 사용됩니다.
<% @ Import Namespace="System.Data.SQL" %> SQL Server 데이터베이스만 해당
<% @ Import Namespace="System.Data.XML" %> XML 처리에 무엇이 사용되는지 살펴볼 필요가 없습니다.
<% @ Import Namespace="System.IO" %> 파일 처리 시 사용
<% @ Import Namespace="System.Web.Util" %> 모든 사람이 이메일을 보낼 때 사용합니다.
<% @ Import Namespace="System.Text" %> 5.Connections(SQLConection 또는 ADOConnection)의 공통 속성 및 메서드는 텍스트를 인코딩할 때 사용됩니다
.
| ConnectionString 데이터베이스에 연결하기 위한 명령문을 가져오거나 설정합니다.
| ConnectionTimeout은 데이터베이스에 연결하는 최대 시간(시간 초과 시간이기도 함)을 가져오거나 설정합니다.
| DataBase는 데이터베이스 서버에서 열려는 데이터베이스의 이름을 가져오거나 설정합니다.
| DataSource는 DSN을 얻거나 설정합니다. 모두가 익숙합니다. :)
| 비밀번호 비밀번호 가져오기 또는 설정
| UserID는 로그인 이름을 가져오거나 설정합니다.
| State는 현재 연결 상태를 가져옵니다.
| Open()은 연결을 엽니다.
| Close()는 연결을 닫습니다.
| Clone() 연결을 복제합니다. (하하, 양도 연결될 수 있고 나도 마찬가지입니다)
예:
SQLConnection myConnection = 새로운 SQLConnection();
myConnection.DataSource = "mySQLServer";
myConnection.Password = "";
myConnection.UserID = "sa";
myConnection.ConnectionTimeout = 30;
myConnection.Open();
myConnection.Database = "북풍";
myConnection.IsolationLevel = IsolationLevel.ReadCommitted
6. 일반적으로 사용되는 Command의 방법과 속성
| ActiveConnection 연결을 가져오거나 설정합니다.
| CommandText는 SQL 문 또는 저장 프로시저(StoredProcedure) 이름을 실행합니다.
| CommandTimeout 최대 실행 시간
| CommandType 명령 작업에는 세 가지 유형(StoredProcedure, Text, TableDirect)이 있으며 기본값은 Text입니다.
| 저장 프로시저를 실행할 때 사용되는 매개변수
| Execute()는 SQL 문이나 저장 프로시저를 실행합니다.
| ExecuteNonQuery() 위와 동일하지만 레코드 세트를 반환하지 않는다는 점이 다릅니다.
| Clone() 복제 명령
예:
string mySelectQuery = "SELECT * FROM 카테고리 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. 데이터베이스를 열고 닫는 두 가지 방법:
1.MyConnection.Open(); //연결을 엽니다.
MyConnection.Close();
2.MyCommand.ActiveConnection.Open();
MyCommand.ActiveConnection.Close()
8. DataSet을 사용하여 데이터베이스의 데이터를 추가, 수정 및 삭제합니다.
a.데이터 추가
DataRow dr=MyDataSet.Tables["UserList"].NewRow();
dr["UserName"] = "주간 뉴스";
dr["ReMark"] = "100";
dr["Comment"] = "아름다운 MM";
MyDataSet.Tables.Rows.Add(dr)
b.
MyDataSet.Tables["UserList"].Rows[0]["UserName"]="Brother Flying Knife";
c.
MyDataSet.Tables["UserList"],Rows[0].Delete()
d.데이터 복원
if(MyDataSet.HasErrors)
{
MyDataSet.RejectChanges();
}
e. DataSet이 변경되었는지 감지합니다.
if(MyDataSet.HasChanges)
{
//코드 저장
}또 다른{
//변경사항이 없으므로 시간을 절약하기 위해 저장할 필요가 없습니다.
}
f. 데이터베이스 업데이트
MyComm.Update(MyDataSet); //데이터베이스의 모든 테이블 업데이트
MyComm.Update(MyDataSet,"UserList") //테이블 업데이트
9.DataGrid는 페이징 기능을 구현합니다.
AllowPaging="True" //페이징 허용을 의미하며 이것이 가장 중요합니다. 이를 통해 페이지를 매길 수 있습니다.
PageSize="5" //각 페이지에 표시되는 레코드 수를 지정합니다. 쓰지 않으면 기본값은 10입니다.
PagerStyle-HorizontalAlign="Right" //패싯 디스플레이의 위치를 지정합니다. 기본값은 왼쪽입니다.
PagerStyle-NextPageText="다음 페이지" //<>를 이전 페이지와 다음 페이지 문자열로 변경합니다.
PagerStyle-PrevPageText="이전 페이지"
PagerStyle-Mode="NumericPages" //<>를 123 디지털 디스플레이로 변경
10. 총 페이지 수와 보고서가 현재 있는 페이지를 표시합니다.
현재 페이지는 다음과 같습니다: <font color=red><%=DataGrid1.CurrentPageIndex+1%></font><br>
총 페이지 수는 다음과 같습니다: <font color=red><%=DataGrid1.PageCount%></font><br>
11.개인화된 페이징
프로그래머의 Basecamp의 "Close Contact ASP.Net (14)"에는 완전한 코드
12가 있습니다. 페이지를 유효한 상태로 재설정하려면
IValidator val;
foreach(검증기의 값)
{
Val.IsValid = true;
}
13. 전체 검증 시퀀스를 다시 실행합니다.
IValidator val;
foreach(검증기의 값)
{
Val.Validate();
}
14. 클라이언트 확인 비활성화
<%@ 페이지 언어="c#" clienttarget=하위 레벨 %>
15.Repeater, DataList 및 DataGrid 컨트롤 사용"
이러한 컨트롤은 보고서, 장바구니, 제품 목록, 쿼리 등 여러 가지 일반적인 웹 애플리케이션 시나리오를 단순화할 수 있습니다.
결과 및 탐색 메뉴. Repeater는 템플릿에서 HTML 조각을 허용하는 유일한 컨트롤입니다.
16. Server.Execute("another.aspx")와 Server.Transfer("another.aspx")의 차이점:
현재 페이지에서 지정된 페이지로 전송을 실행하고 현재 페이지로 실행을 반환합니다.
전송은 지정된 페이지로 실행을 완전히 전송하는 것입니다.
17. XML 파일은 자체 스키마를 가질 수도 있고 *.xsl 파일에 존재할 수도 있지만 정보는 아래와 같이 xmlns 속성을 통해 xml 문서의 루트 노드에 지정되어야 합니다.
<rootelement xmlns="x-schema:scheduledSchema.xsl">
18. XML 파일 읽기
FileStream myfs=new Filestream(Server.MapPath("xmldtagrid.xml"),FileMode.Open,FileAccess.Read);
StreamReader myreader=새 StreamReader(myfs);
DataSet myds=new DataSet();
myds.ReadXml(myreader);
19. 정규식 제어 RegularExpressionValidator
기호 의미
^ 검사를 시작할 위치를 지정하십시오
$는 수표의 끝을 지정합니다
[] 입력한 값이 대괄호 안의 문자 중 하나와 일치하는지 확인합니다.
W를 사용하면 모든 값을 입력할 수 있습니다.
d{} "d"는 입력 값이 숫자임을 지정하고, {}는 지정된 데이터 유형의 발생 횟수를 나타냅니다.
+는 검사 중인 표현식에 하나 이상의 요소가 추가됨을 나타냅니다.
예: 이메일 형식(@ 기호가 있고 .com/.net/.org/.edu로 끝남)
유효성 검사 표현="^[w-]+@[w-]+.(com|net|org|edu)$"
20. DataGrid 컨트롤의 데이터 작업에 대한 중요 설명:
속성: DataKeyField="userid" //userid를 테이블의 기본 키로 설정합니다. 이 필드의 값은 데이터베이스에 업데이트될 수 없습니다. 테이블의 기본 키를 DataGrid의 기본 키로 설정하는 것이 가장 좋습니다.
SqlCommand.Parameters["@userid"].Value=dg.DataKeys[(int)e.Item.ItemIndex]; //업데이트할 행의 기본 키를 검색합니다. (현재 선택한 행의 기본 키 값을 명령은 매개변수입니다
SqlCommand.Parameters["@fname"].Value=((TextBox)e.Item.Cells[2].Controls[0]).Text; //수정된 행 값을 매개변수에 할당합니다.
21. 사용자 정의 컨트롤:
a. 사용자 컨트롤(ASP 생성 페이지와 동일)
(I) 페이지를 만들고 컨트롤을 끌어서 속성/메서드를 설정합니다. 이 페이지를 정의하는 <% @Control Language="C#" Debug="True" %>의 @Control 지시문에는 컨트롤 코드가 포함됩니다.
(II) a.ascx와 같은 *.ascx 파일로 저장합니다.
(III).사용: 헤더< %@Register Tagprefix="MyFirstControl" TagName="MyLbl" Src="a.axcs" %>
//Tagprefix는 ASP의 ASP:TextBox와 같이 컨트롤의 접두사입니다.
//TagName은 사용자 정의 컨트롤의 이름을 지정하는 데 사용됩니다.
//Src는 제어 파일 소스를 지정합니다.
본문:<MyFirstControl:MyLbl runat="Server" id="AllMine" MyText="성공" />
b. C#을 사용하여 사용자 지정 컨트롤 만들기
(I) 순수 코드 파일을 생성하고 기본 클래스 Control을 상속한 후 a.cs와 같은 *.cs로 저장합니다.
(II) 코드를 컴파일하여 어셈블리를 생성합니다. csc /t:library /r:System.dll,System.Web.Dll a.cs
//라이브러리는 C# 컴파일러에게 어셈블리를 생성하라고 지시합니다.
// /r:System.dll System.Web.Dll은 C# 컴파일러에게 지정된 어셈블리를 참조하도록 지시합니다.
(III) 생성된 dll 파일을 bin 디렉터리에 넣습니다.
(IV).사용: <% @Register TagPrefix="Mine" Namespace="MyOwnControls" Assembly="a" %>
22. 복합 대조에 대한 예방조치:
public class MyCompositin:Control,INamingContainer //INamingContainer: 페이지에 이 컨트롤의 인스턴스가 여러 개 있는 경우 이 인터페이스는 각 {} 인스턴스에 고유 플래그를 제공할 수 있습니다.
this.EnsureChildControls();//복합 컨트롤이 All이라는 것을 나타냅니다. 하위 컨트롤이 페이지에 렌더링됩니다. 이 메서드는 서버 컨트롤에
CreateChildControls
하위 컨트롤이 포함되어 있는지 확인합니다.
23.Button/LinkButton/ImageButton/HyperLink는 언제 사용되나요?
1.Button 및 ImageButton은 데이터를 서버로 다시 전달하는 데 사용됩니다.
2.하이퍼링크는 페이지 간 이동에 사용됩니다.
3.LinkButton은 서버에 데이터를 저장하거나 서버의 데이터에 액세스하는 데 사용됩니다.
24. 추적 및 디버깅
길:
1. 페이지 수준 추적: 페이지 시작 부분에 다음 페이지 지침을 포함합니다. <%@ Page Trace="True" TraceMode="SortByCategory/SortByTime" %>
맞춤 메시지:
Trace.Write("표시할 문자열은 다음과 같습니다.");
Trace.Warn("표시할 문자열은 다음과 같습니다."); //글꼴이 빨간색이라는 점을 제외하면 Trace.Write와 동일합니다.
추적이 사용되는지 확인
예: if(Trace.IsEnabled) { Trace.Warn("추적이 활성화되었습니다")}
2. 애플리케이션 수준 추적: Web.config 파일의 <System.Web> 섹션에 있는 <traceenabled="true" pageOutput="true"/>
25. 캐시 설정:
1. 출력 캐싱:
I. 페이지 설정: 캐시해야 하는 페이지의 시작 부분에 <%@ OutputCache Duration="120" VaryByParam="none" %> 추가
참고: 이 페이지를 요청한 후 마지막 2분 동안 출력 내용은 변경되지 않습니다.
II. 프로그래밍 방식 설정:
주로 System.Web.HttpCachePolicy 클래스 아래의 메서드를 사용합니다.
(1).Response.Cache.SetExpires(DateTime.Now.AddSeconds(120)); //이 메서드에는 만료 시간을 지정해야 합니다. 예를 들어 //문장은 2분입니다.
(2) Response.Cache.SetExpires(DateTime.Now.AddSeconds(120));
Response.Cache.SetSlidingExpiration(true); //"만료 조정 가능"은 처음에는 방문 횟수가 많았으나 나중에는 방문 횟수가 균형을 이루는 상황에 주로 사용됩니다.
기능: 첫 번째 줄은 캐시 만료 시간을 설정하고 두 번째 줄은 슬라이딩 만료(조정 가능한 만료)를 설정합니다.
2. 데이터 캐시:
(1).DataView mySource; (2).mySource에 값 할당;
(3).Cache["myCache"]=mySource; (4).mySource=(DataView)캐시["myCache"]
26. 배포: 제품 서버에 직접 복사하여 다음 명령문을 복사합니다. XCOPY <source_path> <destination_path> //XOPY는 가상 경로가 아닌 물리적 경로만 허용합니다.